c#读取excel文件并写入
时间: 2024-12-18 16:38:02 浏览: 31
CSharp读取excel另存为
在C#中,可以使用Microsoft.Office.Interop.Excel库来读取Excel文件,并使用类似的方式将其内容写入新的Excel文件。以下是一个简单的步骤:
1. **引用库**:
首先,你需要添加对Microsoft.Office.Interop.Excel的引用,可以在项目管理器中选择NuGet包管理器,搜索并安装`EPPlus`(一个轻量级的Excel操作库)或直接引用`Microsoft.Office.Interop.Excel`。
2. **打开 Excel 文件**:
使用 `Application` 对象打开Excel应用,然后通过 `Workbooks.Open` 方法加载Excel文件。
```csharp
using Microsoft.Office.Interop.Excel;
// 创建Excel应用实例
Application excelApp = new Application();
Workbook workbook = excelApp.Workbooks.Open("path_to_your_file.xlsx");
```
3. **读取数据**:
可以使用 `Worksheets` 属性获取工作表,通过索引来访问特定的工作表。然后使用 `Range` 类来读取单元格的数据。
```csharp
Worksheet worksheet = workbook.Worksheets["Sheet1"];
Range dataRange = worksheet.Range["A1", "D4"]; // 假设我们想读取从A1到D4的范围
List<string[]> data = new List<string[]>();
for (int row = 1; row <= dataRange.Rows.Count; row++)
{
string[] rowData = new string[dataRange.Columns.Count];
for (int col = 1; col <= dataRange.Columns.Count; col++)
{
rowData[col - 1] = dataRange.Cells[row, col].Value.ToString();
}
data.Add(rowData);
}
```
4. **写入新文件**:
创建一个新的Excel应用实例,创建一个新的工作簿,并将读取到的数据写入新的工作表。
```csharp
Workbook newWorkbook = new Application().Workbooks.Add();
Worksheet newRowSheet = newWorkbook.Worksheets.Add();
string[][] newData = data.ToArray(); // 将列表转换回数组
foreach (string[] rowData in newData)
{
Range newRowRange = newRowSheet.Cells[rowData.Length, 0]; // 新行开始于第一列
for (int i = 0; i < rowData.Length; i++)
{
newRowRange.Offset(0, i).Value = rowData[i]; // 写入单元格值
}
}
newWorkbook.SaveAs("new_file.xlsx"); // 保存新文件
newWorkbook.Close();
excelApp.Quit();
```
阅读全文