NPOI 是否支持复制工作表并将其插入到同一工作簿中?

Does NPOI support copying a worksheet and inserting it into the same workbook?

我不熟悉使用 NPOI 和 XSSF 接口。

NPOI XSSF 是否支持复制 sheet 并将其插入到同一工作簿中?

通过阅读,我看到通过 HSSF 我可以复制一个 sheet 并将其插入到一个新的工作簿中。

我知道 Aspose.Cells 支持此功能。 此功能是否可通过 NPOI XSSF 获得?

是的,您可以复制一个 sheet 并将其插入到与 XSSFSheetCopyTo 方法相同的工作簿中。您需要确保复制的 sheet 具有不同的名称以避免产生异常。

请注意,此方法在 NPOI 2.4.0 中介绍。

下面是复制工作簿第一个 sheet(索引 0)的示例:

XSSFWorkbook workbook;

using (FileStream fs = new FileStream(@"c:\temp\test.xlsx", FileMode.Open, FileAccess.Read))
{
    workbook = new XSSFWorkbook(fs);
}

XSSFSheet sheet = workbook.GetSheetAt(0) as XSSFSheet;
sheet.CopyTo(workbook, $"{sheet.SheetName}_copy", true, true);

using (FileStream fs = new FileStream(@"c:\temp\test.xlsx", FileMode.Create, FileAccess.Write))
{
    workbook.Write(fs);
}