NPOI复制第二个Sheet,并给新的Sheet写入值
时间: 2024-11-27 12:17:56 浏览: 0
.net NPOI导出EXCEL多个sheet
NPOI是一个用于.NET平台上操作Microsoft Office Open XML (.xlsx)文件的开源库。如果你想要使用NPOI复制Excel工作簿中的第二个Sheet(也叫Sheet2),并将数据写入到这个新的Sheet,可以按照以下步骤操作:
1. 引入所需的NPOI库:
```csharp
using NPOI.OpenXmlFormats.Spreadsheet;
using NPOI.XSSF.UserModel;
```
2. 加载原始Excel文件:
```csharp
XSSFWorkbook workbook = new XSSFWorkbook(StreamOfYourOriginalFile); // 替换为实际的文件流
IXSSFSheet originalSheet = workbook.GetSheetAt(1); // 获取原始的Sheet2
```
3. 创建一个新的工作簿并添加新Sheet:
```csharp
XSSFWorkbook newWorkbook = new XSSFWorkbook();
IXSSFSheet newSheet = newXSSFWorkbook.CreateSheet("New Sheet"); // 新建一个名为"New Sheet"的工作表
```
4. 复制原Sheet的内容到新Sheet:
```csharp
newSheet.CopyFrom(originalSheet, 0); // 将原Sheet的数据复制到新Sheet的第0行
```
5. 写入新数据到新Sheet:
```csharp
// 假设你已经有了一个DataTable或List<T>的数据源
foreach (var row in yourData)
{
var newRow = newSheet.CreateRow((short)row.Index); // 创建新行
for (int i = 0; i < row.Cells.Count; i++)
{
newRow.CreateCell(i).setCellValue(row.Cells[i].Value); // 设置单元格值
}
}
```
6. 保存新工作簿:
```csharp
FileStream outputStream = File.Create("NewWorkbook.xlsx");
newWorkbook.Write(outputStream);
outputStream.Close();
newWorkbook.Close(); // 关闭新工作簿和流
```
阅读全文