C# 只需打开并保存而不做任何更改,文件就会损坏
正在编写一些代码来更新电子表格,但我注意到打开电子表格并保存它的孤立行为会破坏它,从而产生消息 我们发现“”中的某些内容有问题。是否希望我们尽可能多地恢复 这可以通过以下代码进行复制C# 只需打开并保存而不做任何更改,文件就会损坏,c#,epplus,C#,Epplus,正在编写一些代码来更新电子表格,但我注意到打开电子表格并保存它的孤立行为会破坏它,从而产生消息 我们发现“”中的某些内容有问题。是否希望我们尽可能多地恢复 这可以通过以下代码进行复制 FileInfo excelFile = new FileInfo("mysheet.xlsm"); using (ExcelPackage excel = new ExcelPackage(excelFile)) { excel.Save(); } 在这个过程中,生成的文件也从大约3MB缩小到2MB 看
FileInfo excelFile = new FileInfo("mysheet.xlsm");
using (ExcelPackage excel = new ExcelPackage(excelFile))
{
excel.Save();
}
在这个过程中,生成的文件也从大约3MB缩小到2MB
看起来这应该很简单,但我肯定错过了一些关键的东西。DISCAIMER:这不是答案,但我想发布一些代码 我试图重现你的问题,但没有成功。步骤如下: 我已经在Excel 2010中手动创建了一个电子表格。Sheet1单元格A1中的文本仅为“Hello”。我还在宏编辑器(Alt-F11)中添加了一个代码模块,代码如下:
Option Explicit
Sub Foo()
MsgBox "Hello World", vbOKOnly, "Foo!"
End Sub
然后我将其保存为启用宏的电子表格(C:\Temp\Book1.xlsm)
然后,我在VisualStudio中创建了一个C#控制台应用程序,并从NuGet添加了EPPlus包。主要方法如下所示:
static void Main(string[] args)
{
using (var pck = new ExcelPackage(new FileInfo(@"c:\temp\Book1.xlsm")))
{
pck.Save();
}
}
当我调试它时,它会毫无问题地执行
您是否已检查要保存到的文件夹的权限并强制刷新您的ePlus软件包?DISCAIMER:这不是答案,但我想发布一些代码 我试图重现你的问题,但没有成功。步骤如下: 我已经在Excel 2010中手动创建了一个电子表格。Sheet1单元格A1中的文本仅为“Hello”。我还在宏编辑器(Alt-F11)中添加了一个代码模块,代码如下:
Option Explicit
Sub Foo()
MsgBox "Hello World", vbOKOnly, "Foo!"
End Sub
然后我将其保存为启用宏的电子表格(C:\Temp\Book1.xlsm)
然后,我在VisualStudio中创建了一个C#控制台应用程序,并从NuGet添加了EPPlus包。主要方法如下所示:
static void Main(string[] args)
{
using (var pck = new ExcelPackage(new FileInfo(@"c:\temp\Book1.xlsm")))
{
pck.Save();
}
}
当我调试它时,它会毫无问题地执行
您是否检查了要保存到的文件夹的权限并强制刷新了您的ePlus软件包?我无法找到问题的根源并切换到互操作库。我无法找到问题的根源并切换到互操作库。您是否向ePlus支持部门提出了问题?可能是您的电子表格包含一些EPPlus不支持的内容(它没有涵盖您使用Excel所能做的全部内容)。你试过使用不同的/更基本的电子表格吗?@mjwillis我看了一下[论坛)但它看起来没有那么活跃,所以我先来这里。我也可以试试那个路线…@Chris你的codeplex链接是broken@mjwills哎哟,我想是链接的格式倒过来了,但它主要是一些没有回答的问题。您是否向epplus支持部门提出了这个问题?可能是您的电子表格包含EPPlus不支持的某些内容(它没有涵盖Excel的100%功能)。您是否尝试过使用其他/更基本的电子表格?@mjwillis我查看了[论坛)但它看起来没有那么活跃,所以我先来这里。我也可以试试那个路线…@Chris你的codeplex链接是broken@mjwills哎呀,我想是链接的格式倒过来了,但主要是问题的线索,没有回答。我感谢你的帮助。我试过你的例子,效果不错,然后重复了我的然后我又加了一个“你好”。这似乎是需要一个宏来为XLSM保存正确的。这种验证是以前的实验失败的,在那里我从问题工作簿中拷贝了一个纯文本工作表并通过代码运行,但也失败了。因此,我们可以肯定地保存.xLSM,但是很难找到什么样的PAR。我的文档T引起了这个问题…我很感激帮助。我试过你的例子,它工作得很好,然后用空白文档重复我的,它又失败了。然后尝试了另一个我添加了“你好”的地方。这似乎是需要一个宏来为XLSM保存正确的。这种验证是以前的实验失败的,在那里我从问题工作簿中拷贝了一个纯文本工作表并通过代码运行,但也失败了。因此,我们可以肯定地保存.xLSM,但是很难找到什么样的PAR。我的文档中的t导致了问题。。。