C#使用Microsoft.office.Interop.Excel将datatable数据输入到指定Excel文件的新建一个表中
时间: 2024-12-12 22:24:44 浏览: 13
在C#中,使用`Microsoft.Office.Interop.Excel`库可以方便地与Excel进行交互,包括创建新工作簿、表格以及填充数据。以下是使用这个库将DataTable数据插入Excel新建工作表的一个示例步骤:
1. 首先,你需要添加对`Microsoft.Office.Interop.Excel`命名空间的引用。如果你使用的是Visual Studio,可以在项目管理器中找到它并右键添加引用。
```csharp
using Microsoft.Office.Interop.Excel;
```
2. 创建一个新的Excel应用实例,并打开一个新工作簿:
```csharp
Application excelApp = new Application();
Workbook workbook = excelApp.Workbooks.Add();
Worksheet worksheet = workbook.ActiveSheet; // 获取第一个活动工作表
```
3. 将DataTable转换为Range对象,这通常用于直接写入Excel单元格。你可以遍历DataTable的行和列,然后逐个单元格赋值:
```csharp
if (dataTable != null)
{
foreach (DataRow row in dataTable.Rows)
{
int rowIndex = worksheet.Cells.SpecialCells(xlCellTypeLastCell).Row + 1; // 获取当前行数加一作为新的起始行
for (int i = 0; i < dataTable.Columns.Count; i++)
{
string columnName = dataTable.Columns[i].ColumnName;
object cellValue = row[columnName];
worksheet.Cells[rowIndex, i + 1] = cellValue; // 从1开始索引列,因为默认是从A列开始
}
rowIndex++; // 每次写完一行后,移动到下一行
}
}
```
4. 最后,记得关闭工作簿和释放资源:
```csharp
workbook.Close(false); // 关闭而不保存
excelApp.Quit();
Marshal.ReleaseComObject(worksheet);
Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(excelApp);
```
阅读全文