iT邦幫忙

0

C# NPOI 輸出EXCEL 想要使用公式

  • 分享至 

  • xImage

我現在寫好一個程式可以輸出EXCEL,遇到一個問題,就是想要計算一列的合計,而且要有公式的,這樣前面的值有更新,合計也會隨時更新

欄位1 欄位2 欄位3 欄位4 欄位5 合計
編號 1 2 1 2 =SUM(欄位2:欄位5)

想請問能用NPOI實作嗎?網路上找資料都看到取公式的返回值
謝謝!!

阿恢 iT邦新手 4 級 ‧ 2022-09-07 11:40:42 檢舉
https://www.ez2o.com/Blog/Post/csharp-Excel-NPOI-Formula
非常感謝!!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
Coding小僧
iT邦新手 3 級 ‧ 2022-09-07 11:45:26

使用SetCellFormula(),注意公式不需要加=,參考下面範例:

public static void CreateFile()
{
    var wb = new XSSFWorkbook();
    var ws = wb.CreateSheet("Test");

    ws.CreateRow(0);
    ws.GetRow(0).CreateCell(0).SetCellValue("欄位1");
    ws.GetRow(0).CreateCell(1).SetCellValue("欄位2");
    ws.GetRow(0).CreateCell(2).SetCellValue("欄位3");
    ws.GetRow(0).CreateCell(3).SetCellValue("欄位4");
    ws.GetRow(0).CreateCell(4).SetCellValue("欄位5");
    ws.GetRow(0).CreateCell(5).SetCellValue("合計");

    ws.CreateRow(1);
    ws.GetRow(1).CreateCell(0).SetCellValue("編號");
    ws.GetRow(1).CreateCell(1).SetCellValue(1);
    ws.GetRow(1).CreateCell(2).SetCellValue(2);
    ws.GetRow(1).CreateCell(3).SetCellValue(1);
    ws.GetRow(1).CreateCell(4).SetCellValue(2);
    ws.GetRow(1).CreateCell(5).SetCellFormula($"SUM(B2:E2)");

    var file = new FileStream(@"D:\test.xlsx", FileMode.Create);
    wb.Write(file);
    file.Close();
}

我要發表回答

立即登入回答