如何使用 C# 和 ClosedXML 将新行追加到 Excel 文件?

Vla*_*koy 3 c# excel closedxml

我应该向现有 Excel 文件追加一个新行。任务由两部分组成:

  1. 添加到不存在的文件(效果很好)。
  2. 添加到现有文件(不起作用:它不会创建新记录,仅显示“else”正文中的旧记录)。

这是我的代码:

private static void ExportToEXCEL(DataTable dt, string paymentStoryPath)
{
    if (File.Exists(paymentStoryPath))
    {
        XLWorkbook currentWorkbook = new XLWorkbook(paymentStoryPath);
        IXLWorksheet currentWsh = currentWorkbook.Worksheet("Payment history");
        //IXLCell cellForNewData = index.Cell(index.LastRowUsed().RowNumber() + 1, 1);
        IXLRow rowForNewData = currentWsh.Row(currentWsh.LastRowUsed().RowNumber()+1);
        rowForNewData.InsertRowsBelow(1);
        rowForNewData.Value = dt;
        currentWorkbook.Save();
    }
    else
    {
        //not exist
        XLWorkbook wb = new XLWorkbook();
        wb.Worksheets.Add(dt, "Payment history");
        wb.SaveAs(paymentStoryPath);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题,我应该更改什么?

Rai*_*ica 5

要添加DataTable使用以下InsertTable()方法:

    XLWorkbook currentWorkbook = new XLWorkbook(paymentStoryPath);
    IXLWorksheet currentWsh = currentWorkbook.Worksheet("Payment history");
    IXLCell cellForNewData = currentWsh.Cell(currentWsh.LastRowUsed().RowNumber() + 1, 1);
    cellForNewData.InsertTable(dt);
    currentWorkbook.Save();
Run Code Online (Sandbox Code Playgroud)