C#如何使用 NPOI进行复制指定页码页面,并在后面该页面后面进行粘贴,完整代码
时间: 2024-03-20 19:43:06 浏览: 135
C#中可以使用 NPOI 库来复制指定页码的页面,并在该页面后面进行粘贴。下面是一个完整的示例代码:
```csharp
using System;
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
namespace NPOIExample
{
class Program
{
static void Main(string[] args)
{
string filePath = "example.xlsx";
int sourceSheetIndex = 0;
int targetSheetIndex = 1;
// 加载 Excel 文件
IWorkbook workbook;
using (FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite))
{
string fileExtension = Path.GetExtension(filePath);
if (fileExtension == ".xls")
{
workbook = new HSSFWorkbook(stream);
}
else if (fileExtension == ".xlsx")
{
workbook = new XSSFWorkbook(stream);
}
else
{
throw new Exception("不支持的文件格式!");
}
// 复制指定页码的页面
ISheet sourceSheet = workbook.GetSheetAt(sourceSheetIndex);
ISheet targetSheet = workbook.CloneSheet(sourceSheetIndex);
workbook.SetSheetName(workbook.GetSheetIndex(targetSheet), "Copy of " + sourceSheet.SheetName);
// 在复制的页面后面进行粘贴
int lastRowIndex = targetSheet.LastRowNum;
targetSheet.CopyRows(sourceSheet.FirstRowNum, sourceSheet.LastRowNum, lastRowIndex + 1);
// 保存文件
workbook.Write(stream);
}
}
}
}
```
在上面的代码中,我们首先加载了一个 Excel 文件,然后复制了指定页码的页面,并在复制的页面后面进行粘贴,最后保存文件。请注意,这个示例代码中假设要复制的页面是第一个页面,粘贴到第二个页面后面,你需要根据实际情况修改代码中的 `sourceSheetIndex` 和 `targetSheetIndex` 变量。
阅读全文