使用 C# 更新 Excel 文件(OpenXml 格式)

Update Excel file (OpenXml format) with C#

我需要更新将从网络浏览器上传的 Excel sheet 中每一行的几列(我需要解密 sheet 从这些列中取出并用真实值替换它们)。替换完成后,我会将更新后的文件推送回客户端。

我过去曾与 NPOI 合作过,但我想知道现在是否有更好的解决方案来实现这一点。在制作这个 post 之前我做了一些挖掘并找到了 ExcelDataReader 但是除了使用该库读取 Excel 文件之外我找不到一种简单的方法来做任何事情,我的要求是文件更新。

如有任何建议,我们将不胜感激。

这是使用 EPPlus 库的真正简单的 class。它通过反转每一行第一列中的文本来更新 Excel 文件。您可以使用第一列中包含文本的任何 Excel 电子表格对其进行测试。

ReverseText 替换为解密值的任何内容。

public class ExcelUpdater
{
    public void UpdateExcel(string pathToFile)
    {
        using (var package = new ExcelPackage(new FileInfo(pathToFile)))
        {
            var worksheet = package.Workbook.Worksheets.First();
            var lastRow = worksheet.Dimension.End.Row;
            for (var row = 1; row <= lastRow; row++)
            {
                worksheet.Cells[row, 1].Value = ReverseText(worksheet.Cells[row, 1].Text);
            }
            package.Save();
        }
    }

    private string ReverseText(string value)
    {
        return new string(value.Reverse().ToArray());
    }
}