0

如何从单元格中找到一些值并在 Excel 中替换为新值?

我试过了,但它不起作用:

Microsoft.Office.Interop.Excel.Application xlapp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook wb =default(Microsoft.Office.Interop.Excel.Workbook);

wb = xlapp.Workbooks.Open(FileName.ToString());

wb.Worksheets[0].Cells.Replace("find","replace");
4

3 回答 3

2

我建议您使用NPOI,它可以通过 codeplex 或直接通过 Visual Studio 中的 Nuget 访问。它使您能够在 .NET 中轻松上传、编辑和创建电子表格

上传电子表格的示例:

HSSFWorkbook hssfworkbook;

void InitializeWorkbook(string path)
{
    //read the template via FileStream, it is suggested to use FileAccess.Read to prevent file lock.
    //book1.xls is an Excel-2007-generated file, so some new unknown BIFF records are added. 
    using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
    {
        hssfworkbook = new HSSFWorkbook(file);
    }
}

然后,您可以在导出之前使用电子表格的 IRow 和 ICell 集合来定位和编辑您需要的数据。

更多示例可以在这里找到

于 2014-03-05T21:59:34.690 回答
2

如果有兴趣,您可以为此使用GemBox.Spreadsheet,如下所示:

SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");

// Load your XLS, XLSX, ODS or CSV file.
ExcelFile wb = ExcelFile.Load(FileName.ToString());
ExcelWorksheet ws = wb.Worksheets[0];

// Replace all "find" occurances with "replace" text.
int row, column;
while(ws.Cells.FindText("find", out row, out column))
    ws.Cells[row, column].ReplaceText("find", "replace");

// Save your XLS, XLSX, ODS or CSV file.
wb.Save(FileName.ToString());

您还可以在此处的 Excel 示例中找到另一个搜索

于 2017-03-03T08:44:03.693 回答
1

你所要做的就是更换

wb.Worksheets[0].Cells.Replace("find","replace");

wb.Worksheets[1].Cells.Replace("find","replace");
于 2017-03-02T19:58:49.757 回答