C# 怎么用NPOI在Excel表格中将sheet1复制一份成sheet2
时间: 2024-10-13 07:05:35 浏览: 144
在C#中,你可以使用NPOI库(HSSF和XSSF版本,取决于你的需求,NPOI支持两种Excel文件格式)来操作Excel文件,包括复制工作表。以下是一个简单的步骤说明:
首先,你需要安装NPOI库,可以使用NuGet包管理器添加`Apache.Npoi`或`NPOI.HSSF`(对于旧版Excel文件)。
```csharp
using NPOI;
using NPOI.HSSF.usermodel;
using NPOI.XSSF.usermodel;
// 对于HSSF(老式xls文件)
if (IsOldVersion)
{
var workbook = new HSSFWorkbook();
// 打开原工作簿
var originalWorkbook = new FileInfo("source.xls").Load<HISSFWorkbook>();
// 获取原工作表
ISheet originalSheet = originalWorkbook.GetSheetAt(0);
// 创建新的工作表并复制数据
ISheet newSheet = workbook.CreateSheet("Sheet2");
newSheet.CopySheet(originalSheet);
}
// 对于XSSF(xlsx文件)
else
{
using var package = new XSSFWorkbook(); // 或者XlsxPackage
// 打开原工作簿
var originalWorkbook = new FileInfo("source.xlsx").Load<XSSFWorkbook>();
// 获取原工作表
ISheet originalSheet = originalWorkbook.Worksheets[0];
// 创建新的工作表并复制数据
ISheet newSheet = package.Workbook.CreateSheet("Sheet2");
newSheet.CopyFrom(originalSheet, true); // true表示保留公式
}
// 最后保存新工作簿
FileInfo outputfile = new FileInfo("output.xls"); // 或者"output.xlsx"
workbook.Save(outputfile.FullName);
```
在这个例子中,我们假设你有一个名为`source.xls`或`source.xlsx`的源文件,并将其第0个工作表复制到新创建的工作表"Sheet2"。记得替换文件路径和相关的版本检查条件。
阅读全文