为什么Excel文件的大小如果使用EPPlus保存,或者手动保存,则会发生变化?

我正在使用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(); } 

这些xlsx文件只是压缩目录充满了XML。 如果你想看看他们之间的差异,只需解压缩( 7zip将工作),并使用diff工具来比较两个目录。 大小的差异是因为像excel保存工作簿中的最后一个位置和EEPlus不是,或者如何格式化XML。 一般来说,您不应该期望EEPlus产生与Excel完全相同的输出。