处理一些代码以更新电子表格,但我注意到打开电子表格并保存它的孤立行为会破坏它,导致消息 “我们发现''中有些内容存在问题。你想让我们尽可能多地恢复吗?”
这可以通过以下代码复制
FileInfo excelFile = new FileInfo("mysheet.xlsm");
using (ExcelPackage excel = new ExcelPackage(excelFile))
{
excel.Save();
}
在此过程中,生成的文件也会从大约3MB缩小到2MB。
似乎这应该是非常直接的,但我必须错过一些至关重要的事情。
答案 0 :(得分:1)
DISCAIMER :这不是答案,但我想发布一些代码
我试图重现你的问题,但没有运气。步骤如下:
我已经在Excel 2010中手动创建了一个电子表格.Pheet1的单元格A1中的文本只读取" Hello"。我还在宏编辑器(Alt-F11)中添加了一个代码模块,代码如下:
Option Explicit
Sub Foo()
MsgBox "Hello World", vbOKOnly, "Foo!"
End Sub
然后我将其保存为启用宏的电子表格(C:\ Temp \ Book1.xlsm)
在Visual Studio中,我创建了一个C#控制台应用程序,并从NuGet添加了EPPlus包。主要方法如下:
static void Main(string[] args)
{
using (var pck = new ExcelPackage(new FileInfo(@"c:\temp\Book1.xlsm")))
{
pck.Save();
}
}
当我调试它时,它会毫无问题地执行。
您是否已检查过要保存的文件夹的权限并强制刷新您的EPPlus包?
答案 1 :(得分:1)
我无法找到问题的根源并切换到Interop库。