文件损坏只需打开并保存而无需更改

时间:2017-09-12 13:00:41

标签: c# epplus

处理一些代码以更新电子表格,但我注意到打开电子表格并保存它的孤立行为会破坏它,导致消息 “我们发现''中有些内容存在问题。你想让我们尽可能多地恢复吗?”

这可以通过以下代码复制

FileInfo excelFile = new FileInfo("mysheet.xlsm");
using (ExcelPackage excel = new ExcelPackage(excelFile))
{
    excel.Save();
}

在此过程中,生成的文件也会从大约3MB缩小到2MB。

似乎这应该是非常直接的,但我必须错过一些至关重要的事情。

2 个答案:

答案 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库。