打开XML 2.5单元格值不同于单元格公式结果。我能强迫价值吗?

时间:2017-11-02 17:40:32

标签: c# openxml openxml-sdk

我有一项服务,可以从excel文件(文件1)中读取属于不同公司的财务信息,并从中生成多个单独的Excel文件(文件C1,C2,... .cn),通过复制模板(文件T1)并使用open xml 2.5写入副本(让我们称之为服务A )。之后我有服务B ,它读取服务A生成的每个excel并单独存储数据。

服务A读取输入文件(文件1),并想象单元格C21的值为10。 服务A写入新文件C1哪个模板已在单元格C21上具有公式(C21 = C20-C19),如果计算得到不同的结果;

如果使用MS Excel打开文件C1,它将在单元格C21上包含值10,并且公式C20-C19将在计算时给出不同的结果。我们称之为场景1

我不想那样,所以我强制将公式计算为many answers建议:

spreadSheet.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation = true; 
spreadSheet.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;

现在,如果您使用MS Excel打开文件,它将包含内部文本作为计算公式(场景2)的结果,但仍然值为10. < strong>服务B 仍为方案1和2 读取相同的值。

场景3 - 在方案2中,使用MS Excel打开文件后,如果保存,服务B将读取包含公式计算结果的文件。单元格值已更改。

有没有办法以编程方式获取方案3?换句话说,如果Cell包含的值与单元格公式的结果不同,我可以强制它采用公式吗?

如果我打开excel文件的xml结构,这就是你得到的:

enter image description here

我正在使用MSDN approach阅读excel文件,我也在写MSDN sample code

0 个答案:

没有答案