查找和删除Excel工作表中的一些文本与C#
我想find一些文本例如“乔”,并将其从它在Excel工作表与C#中的位置中删除?
你将需要使用Range.Replace方法,并简单地用一个空stringreplace。
static void ReplaceTextInExcelFile(string filename, string replace, string replacement) { object m = Type.Missing; // open excel. Application app = new ApplicationClass(); // open the workbook. Workbook wb = app.Workbooks.Open( filename, m, false, m, m, m, m, m, m, m, m, m, m, m, m); // get the active worksheet. (Replace this if you need to.) Worksheet ws = (Worksheet)wb.ActiveSheet; // get the used range. Range r = (Range)ws.UsedRange; // call the replace method to replace instances. bool success = (bool)r.Replace( replace, replacement, XlLookAt.xlWhole, XlSearchOrder.xlByRows, true, m, m, m); // save and close. wb.Save(); app.Quit(); app = null; }
这适用于Excel 2016
:
- 在C:上search
Microsoft.Office.Interop.Excel
,将其复制到C#项目中,并将其作为参考。 - 程序集版本应该是
15.0.0.0
。
码:
Excel.DisplayAlerts = false; // Prevent "Nothing found" dialogs. var Excel = (Microsoft.Office.Interop.Excel.Application)ExcelDnaUtil.Application; foreach(Worksheet sheet in Excel.Sheets) { bool success = sheet.Rows.Replace(What: "ABC",Replacement: "DEF"); } Excel.DisplayAlerts = true;