Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 只需打开并保存而不做任何更改,文件就会损坏_C#_Epplus - Fatal编程技术网

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导致了问题。。。