【问题标题】:Why does the size of my Excel file change if I save it using EPPlus or if I save it manually?如果我使用 EPPlus 保存或手动保存,为什么我的 Excel 文件的大小会发生变化?
【发布时间】:2015-10-05 22:04:25
【问题描述】:

我正在使用 EPPlus 编辑现有的 Excel 文件。它运行良好,但有趣的是:当我使用 EPPlus 保存此文件时,文件大小为 51.0 KB。如果我在编辑后打开同一个文件并手动保存,文件大小会增加到 59.1 KB。

有人知道为什么会这样吗?
有没有办法避免这种行为?
我的意思是,让 EPPlus 以实际大小(59.1 KB)保存这个文件。
手动保存这个文件和使用 EPPlus 有什么区别?

我发现的另一个观察结果是,当我在使用 EPPlus 编辑此文件后打开此文件时,与手动保存后加载文件相比,加载文件需要更多时间。

这是我的代码:

        FileInfo file = new FileInfo(@"C:\Desktop\MyExcelFile.xlsx");
        using (var package = new ExcelPackage(file))
        {
            ExcelWorkbook workBook = package.Workbook;
            ExcelWorksheet currentWorksheet = workBook.Worksheets.SingleOrDefault(w => w.Name == "MyWorkSheet");
            currentWorksheet.Cells[2, 2].Value = "Value1";
            currentWorksheet.Cells[3, 2].Value = "Value2";
            currentWorksheet.Cells[2, 1].Value = "Value3";
            currentWorksheet.Cells[3, 1].Value = "Value4";
            package.Save();

        }

【问题讨论】:

  • 您有没有找到解决方案?我有同样的问题。从 Excel 保存 XML 后,有没有办法准确地插入 XML?
  • @MatthewD 嗨,马修,我能够通过使用 Excel 互操作库来解决这个问题。你可以试试
  • 感谢您回复我。我的任务是更改一些应用程序以不使用互操作库。他们想从工作站中删除 Office。不过还是谢谢。
  • 我目前有同样的问题,我正在寻找一种替代方法。我正在尝试使用 OpenXML SDK。我会让你知道结果。
  • 我发现的最佳解决方法是拥有一个我复制的模板工作簿。然后我可以打开副本并写入并保存。关闭和打开后我不必再次保存。

标签: .net excel epplus


【解决方案1】:

那些 xlsx 文件只是充满 xml 的压缩目录。如果您想查看它们之间的区别,只需解压缩它们(7zip 可以),然后使用 diff 工具比较两个目录。大小差异将是由于诸如 excel 将您的最后一个位置保存在工作簿中而 EEPlus 没有,或者 xml 的格式。通常,您不应期望 EEPlus 产生与 Excel 完全相同的输出。

【讨论】:

  • 您知道是否有办法强制 EPPlus 生成与 Excel 完全相同的输出?我需要将此编辑后的文件上传到网站,当我使用 EPPlus 保存它时它不被接受。
  • 所以问题是 excel 正在生成一个某些消费者正在接受的文件,但 EEplus 正在生成一个它不是的文件?也许您可以更详细地了解正在使用此文件的内容。具体来说,它会抛出什么错误消息?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多