我用EPPLus来创建一个含有表格中的Excel文件。创建Excel文件和表的工作原理是使用魅力:
worksheet.Cells["A1"].LoadFromCollection(rows, true, TableStyles.Light12);
......但是当我尝试插入公式插入到表后的第一个空行,该文件被损坏而无法正常打开。 Excel可以恢复,虽然它,但我添加了配方一定不会显示。
我用这行代码来创建公式:
worksheet.Cells["E"+(rows.Count+2).ToString()].Formula = "=SUBTOTAL(109;[TurnoverCurrent])";
我已经确认我针对正确的小区,如果我插入只是一个字符串,而不是一个公式,它的工作原理。因此,我的感觉是,我不正确地使用公式法。我如何能实现我的表后的小计公式?
三件事我跳出来,我不知道如果任一/或将修复它,但我想提供。
1)您subtotal
公式是正确的旁边表 - 当Excel渲染XML,是试图把它添加到餐桌吓坏了,因为它是自引用?换句话说,小计式现在是表中的一部分,并添加本身?
2)当我使用小计,我用的是逗号,而不是一个分号
3)你没有你的公式中引用的表名。由于这是一个全新的片材,它是安全的尝试Table1
。如果你真的想成为幻想,你可以看一下表,找到它的名字。我不会。
因此,也许加一排,可以在前面的表名和改变你的分号逗号?
worksheet.Cells[rows.Count + 3, 5].Formula = "=SUBTOTAL(109,Table1[TurnoverCurrent])";
更改
worksheet.Cells["E" + (rows.Count+2).ToString()].Formula = "=SUBTOTAL(109;[TurnoverCurrent])";
至
worksheet.Cells["E" + (rows.Count+2).ToString()].Formula = "SUBTOTAL(109;[TurnoverCurrent])";
请螺母使用“=”