Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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# EPPlus在另存为后生成空Excel文件_C#_Epplus 4 - Fatal编程技术网

C# EPPlus在另存为后生成空Excel文件

C# EPPlus在另存为后生成空Excel文件,c#,epplus-4,C#,Epplus 4,我使用的是最新的4.5.3.3 nuget版本。NET 4.6.1 如果我从头开始创建excel文件,没有问题,但是如果我需要更新现有的excel文件,即使将其传递给ExcelPackage ctor并调用ExcelPackage。更新数据后保存,或者创建原始excel文件的副本以传递给ExcelPackage ctor,我也会得到相同的结果 FileInfo exc = new FileInfo(destPath); using (var ep = new E

我使用的是最新的4.5.3.3 nuget版本。NET 4.6.1

如果我从头开始创建excel文件,没有问题,但是如果我需要更新现有的excel文件,即使将其传递给ExcelPackage ctor并调用ExcelPackage。更新数据后保存,或者创建原始excel文件的副本以传递给ExcelPackage ctor,我也会得到相同的结果

        FileInfo exc = new FileInfo(destPath);

        using (var ep = new ExcelPackage(exc))
        {
            foreach (var sheet in _resultTranslations.Keys)
            {
                List<string> sheetTrs = _resultTranslations[sheet];

                var ws = ep.Workbook.Worksheets[sheet];

                if (ws == null)
                    continue;

                for (int r = 0; r < sheetTrs.Count; r++)
                {
                    ws.Cells[2 + r, 6].Value = sheetTrs[r];
                }
            }

            ep.Save();
        }
FileInfo exc=新的FileInfo(destPath);
使用(var ep=新的ExcelPackage(exc))
{
foreach(resultTranslations.Keys中的var表)
{
列表sheetTrs=_结果转换[表];
var ws=ep.Workbook.Worksheets[工作表];
如果(ws==null)
继续;
对于(int r=0;r
更新: 如果我使用Office 2016打开Excel文件,并保存它而不做任何更改,EEPlus将正确更新它(不再为空)

有什么建议吗


谢谢。

您是否尝试了
保存
而不是
另存为
?只需
ep.Save()是的,在第一次尝试中,我使用了它,而不是制作原始文件的副本。奇怪的是,结果文件的大小几乎与原始文件相同,但所有单元格都是白色的。所以你可以更新文件,但所有单元格都是白色的?没错。两张纸在那里,但“显然”是空的(因为文件大小似乎表明一切正常)。原始文件是基于全文的,没有公式,没有图形…只有文本。某处有编码设置吗?我想这是因为您将String.Empty设置为单元格的值
ws.Cells[2+r,6].Value=string.Empty?您可以更改类似于
ws.Cells[2+r,6].Value=“Value”的内容吗并重试?