我使用EPPLus创建一个带有表的Excel文件。使用以下命令创建excel文件和表格就像一个超级按钮一样:
worksheet.Cells["A1"].LoadFromCollection(rows, true, TableStyles.Light12);
...但是当我尝试在表后的第一个空行中插入公式时,文件已损坏,无法正常打开。 Excel可以恢复它,但是我添加的公式将永远不会显示。
我使用以下代码行创建公式:
worksheet.Cells["E"+(rows.Count+2).ToString()].Formula = "=SUBTOTAL(109;[TurnoverCurrent])";
我已经确认我定位的是正确的单元格,并且如果我只插入一个字符串而不是一个公式,那么它将起作用。因此,我的感觉是我没有正确使用公式方法。桌子后如何获得SUBTOTAL公式?
答案 0 :(得分:1)
三件事突然出现在我身上,我不确定是否会解决它,但我想提供。
1)您的subtotal
公式就在表格旁边-当Excel呈现XML时,它是否会尝试将其添加到表格中并由于其自引用而感到惊讶?换句话说,小计公式现在是表的一部分并添加了它本身?
2)当我使用小计时,我使用逗号而不是分号
3)您没有在公式中引用表名。由于这是一张崭新的工作表,因此可以尝试使用Table1
。如果您真的想花哨的话,可以查询表格并找到其名称。我不会。
那么也许添加一行,在表名前添加前缀并将分号更改为逗号?
worksheet.Cells[rows.Count + 3, 5].Formula = "=SUBTOTAL(109,Table1[TurnoverCurrent])";
答案 1 :(得分:0)
更改
worksheet.Cells["E" + (rows.Count+2).ToString()].Formula = "=SUBTOTAL(109;[TurnoverCurrent])";
到
worksheet.Cells["E" + (rows.Count+2).ToString()].Formula = "SUBTOTAL(109;[TurnoverCurrent])";
不要使用“ =”