العثور على وإزالة بعض النص في ورقة عمل Excel مع c#

StackOverflow https://stackoverflow.com/questions/523690

  •  22-08-2019
  •  | 
  •  

سؤال

أريد أن تجد بعض النصوص على سبيل المثال "جو" و إزالته من حيث هو في ورقة عمل Excel مع C# ؟

هل كانت مفيدة؟

المحلول

وأنت في حاجة إلى استخدام الأسلوب Range.Replace، وببساطة استبدال سلسلة فارغة.

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:

  • البحث عن Microsoft.Office.Interop.Excel على C: نسخ ذلك في 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;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top