如何在表格下方创建公式(小计)

时间:2019-02-08 07:59:57

标签: c# excel epplus

我使用EPPLus创建一个带有表的Excel文件。使用以下命令创建excel文件和表格就像一个超级按钮一样:

worksheet.Cells["A1"].LoadFromCollection(rows, true, TableStyles.Light12);

...但是当我尝试在表后的第一个空行中插入公式时,文件已损坏,无法正常打开。 Excel可以恢复它,但是我添加的公式将永远不会显示。

我使用以下代码行创建公式:

worksheet.Cells["E"+(rows.Count+2).ToString()].Formula = "=SUBTOTAL(109;[TurnoverCurrent])";

我已经确认我定位的是正确的单元格,并且如果我只插入一个字符串而不是一个公式,那么它将起作用。因此,我的感觉是我没有正确使用公式方法。桌子后如何获得SUBTOTAL公式?

2 个答案:

答案 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])";

不要使用“ =”