EPPlus保存table1.xml的ID乱序的现有电子表格的问题

时间:2019-02-21 19:48:06

标签: epplus

全部

这个问题似乎不是EPPlus本身的错误-而是特定电子表格的创建方式以及EPPlus与之交互的方式。我无法共享文件本身,因为其中的数据(与该问题的表达方式有关)是专有的。

我有一个由第三方提供的电子表格,其中包含我需要更新的数千行(不是创建,不添加,而是使用数据库中的值进行更新)。我无法控制如何将其分配给我,而且我无法修改其结构,否则它将无法上传到该接口。我去年用C#编写了一个工具,去年使用EPPlus来满足这种需求,并且效果很好。 (并且仍然适用于去年的文件)。

今年,给我的电子表格发生了变化(没什么大不了的,我们为此计划了),我相应地修改了代码。该工具可以很好地更新电子表格的内容。但是,今年,当我运行该工具时,当我打开修改后的电子表格时,现在出现错误,表明xl / tables / table1.xml存在问题。 Excel修复了该问题,可以打开文件,适当填充了单元格,但是更改了第三方定义文件的方式中的关键标题行(不是我修改的单元格之一)。我可以通过从原始文件中复制受影响的标题行来解决整个问题,并确保一切正常-没有更多错误,但是从操作/自动化的角度来看,这确实是不可持续的。

我尝试删除对文件的所有修改,并只是通过EPPlus保存了文件(因此,打开工作表,保存并退出),仅此将导致文件在打开时产生错误。

        //...other code here getting to function where docName is passed in as string...//
        var fi = new FileInfo(@docName);
        using (ExcelPackage p = new ExcelPackage(fi)) 
        {
            ExcelWorksheet ws = 
            p.Workbook.Worksheets[sheetName];
            p.Save();
         }

我将去年收到的电子表格与今年收到的电子表格进行了比较,发现去年table1.xml的每个tableColumn元素都有不错的连续ID。今年的ID是不连续的。

有人知道EPPlus在后台如何处理table1.xml吗?是一种无需修改即可维护tableColumn定义的方法吗?

或者-我可以像以前一样使用EPPlus更新内容,然后解压缩生成的电子表格,换成xl / tables / table1.xml,然后重新压缩吗?

[编辑-测试表明,换出table1.xml无效]

0 个答案:

没有答案