C#Windows应用程序中Excel单元格值与其他值的替换

C#Windows应用程序中Excel单元格值与其他值的替换,c#,.net,excel,printing,replace,C#,.net,Excel,Printing,Replace,我正在.NET C#中开发一个windows应用程序。我必须用其他文本(从数据库中获取)替换Excel单元格内容。我需要做的是用数据库中的实际值替换Excel的值。(例如,“CustomerName”将替换为“John”,“CustomerCompanyName”将替换为“GE”等)。此外,如果某些值不存在,则该空空间将与其下面的值重叠 我们怎样才能实现这一点呢?这要看情况而定 如果这些只是工作表中的静态值,并且在更新它们时不希望在excel中执行计算,则只需使用编辑电子表格即可 否则,您将不得

我正在.NET C#中开发一个windows应用程序。我必须用其他文本(从数据库中获取)替换Excel单元格内容。我需要做的是用数据库中的实际值替换Excel的值。(例如,“CustomerName”将替换为“John”,“CustomerCompanyName”将替换为“GE”等)。此外,如果某些值不存在,则该空空间将与其下面的值重叠

我们怎样才能实现这一点呢?

这要看情况而定

如果这些只是工作表中的静态值,并且在更新它们时不希望在excel中执行计算,则只需使用编辑电子表格即可

否则,您将不得不使用Office Interopt或某些第三方excel库。

我使用的是来自(无附属机构)的FlexCel,这非常好。价格合理、速度快、完全托管的代码,开发人员似乎知道他在说什么,并且对查询也非常敏感

比办公室互操作库IMHO高1000%


过去,我通过互操作库访问Excel,对于服务器,我使用ODBC/OLE-DB驱动程序,但总是有困难。

如果要使用OpenXml,您将了解如何读取Excel文档单元格的值,以及如何在单元格中写入值

你可以使用的另一个免费图书馆是。这些说明让您初步了解如何读取/写入单元格数据并保存修改后的文件:

        FileStream aFile = new FileStream(@"c:\tmp\foo.xls", FileMode.Open, FileAccess.Read);
        HSSFWorkbook wb = new HSSFWorkbook(aFile);
        aFile.Close();
        ISheet ws = wb.GetSheet("Worksheet1");

        IRow aRow = curSheet.GetRow(aRowIdx);
        if (aRow == null)
            aRow = curSheet.CreateRow(aRowIdx);
        ICell aCell = aRow.GetCell(aColIdx);
        if (aCell == null)
            aCell = aRow.CreateCell(aColIdx);
        string sValue = aCell.StringCellValue; // here the value is read
        sValue = sValue + " MODIFIED";
        aCell.SetCellValue(sValue); // here it is written
        aFile = new FileStream(@"c:\tmp\bar.xls", FileMode.Create);
        wb.Write(aFile);
        aFile.Close();