2009-02-07 12 views

Répondre

7

Vous devez utiliser la méthode Range.Replace et la remplacer par une chaîne vide.

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; 
} 
+0

ur aide Thanx. –

0

Cela fonctionne pour Excel 2016:

  • Rechercher Microsoft.Office.Interop.Excel sur votre C :, le copier dans votre projet C#, et inclure comme référence. La version de l'assembly doit être 15.0.0.0.

code:

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; 
Questions connexes