C#操作excel如何将多个sheet合并到一个中
时间: 2024-12-28 13:32:57 浏览: 11
在C#中,你可以使用Epplus库(以前称作ExcelPackage)来方便地处理Excel文件,包括合并多个工作表。以下是基本步骤:
1. 首先,你需要安装Epplus NuGet包:`Install-Package EPPlus`
2. 引入命名空间:
```csharp
using OfficeOpenXml;
```
3. 创建一个新的ExcelPackage对象,并加载包含多个工作表的源文件:
```csharp
var package = new ExcelPackage(new FileInfo("source.xlsx"));
```
4. 获取你要合并的工作表列表:
```csharp
List<ExcelWorksheet> sheetsToMerge = package.Workbook.Worksheets.Select(w => w).ToList();
```
5. 创建一个新的目标工作表,用于存放合并后的内容:
```csharp
ExcelWorksheet targetSheet = package.Workbook.Worksheets.Add("MergedSheet");
targetSheet.Dimension.End.Row = int.MaxValue; // 设置行数无限大,以便接收所有数据
```
6. 遍历每个工作表,复制其内容到目标工作表:
```csharp
foreach (ExcelWorksheet sheet in sheetsToMerge)
{
var sourceRange = sheet.Cells["A1"];
var targetRange = targetSheet.Cells[sourceRange.Start.Column, sourceRange.Start.Row];
while (!sourceRange.IsRowEmpty)
{
targetRange.Value = sourceRange.Value;
sourceRange = sourceRange.Offset(1, 0);
targetRange = targetRange.Offset(1, 0);
}
}
```
7. 保存修改后的Excel文件:
```csharp
package.SaveAs(new FileInfo("merged.xlsx"));
```
8. 关闭ExcelPackage:
```csharp
package.Dispose();
```
阅读全文