【问题标题】:Update Excel file (OpenXml format) with C#使用 C# 更新 Excel 文件(OpenXml 格式)
【发布时间】:2018-11-28 19:18:49
【问题描述】:

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

我过去曾与 NPOI 合作过,但我想知道现在是否有更好的解决方案来实现这一目标。在发表这篇文章之前,我做了一些挖掘工作并找到了ExcelDataReader,但除了使用该库读取 Excel 文件之外,我找不到任何简单的方法来执行任何操作,而我的要求是对文件进行更新。

任何建议将不胜感激。

【问题讨论】:

  • 我已经多年没有这样做了 - 但您可以使用 Excel 对象模型做任何您想做的事情:docs.microsoft.com/en-us/visualstudio/vsto/…
  • 只有一个问题:您花在使用 .NET 互操作代码自动化 Excel 上的每一小时都会使您的生活减少一个月。任何必须维护它的人也是如此。

标签: c# excel openxml


【解决方案1】:

这是一个使用EPPlus 库的真正简单的类。它通过反转每行第一列中的文本来更新 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());
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多