c#设置列名并逐行写入excel
时间: 2024-12-13 15:22:10 浏览: 12
C# MySQL导出表结构到Excel源码
5星 · 资源好评率100%
在C#中,你可以使用`Microsoft.Office.Interop.Excel`库来操作Excel文件。以下是如何设置列名并逐行写入Excel的工作示例:
首先,确保已安装并引用了必要的Excel Interop库[^1]。
1. **设置列名**:
```csharp
// 假设DataSet中的列名为"ColumnName"
string columnName = "ColumnName";
// 获取第一个工作表(通常为Sheet1)
Excel.Worksheet worksheet = excel.ActiveSheet;
// 写入列名到A1单元格(假设A列对应于列头)
Range headerRange = worksheet.Cells[1, 1];
headerRange.Value2 = columnName;
headerRange.Font.Bold = true; // 可选,使列名加粗显示
// 如果有多个列名,可以循环遍历DataSet的字段
foreach (DataColumn column in dataSet.Columns)
{
string cellName = column.ColumnName;
headerRange.Offset(1, columns.IndexOf(column)) = cellName; // columns是列名到列索引的映射
}
```
2. **逐行写入数据**:
```csharp
// 循环遍历DataSet的每一行
for (int i = 0; i < dataSet.Rows.Count; i++)
{
Excel.Range dataRange = worksheet.Cells[i + 2, 1]; // 注意这里是i+2,因为我们要跳过列名所在的行
Range.Value2 = dataSet.Tables[0].Rows[i];
// 如果某列的数据类型不适合直接赋值,可能需要转换
foreach (DataColumn column in dataSet.Columns)
{
object dataValue = dataSet.Tables[0].Rows[i][column];
if (dataValue != null && !(dataValue is DBNull))
{
switch (column.DataType)
{
case typeof(string):
dataRange.Offset(i, columns.IndexOf(column)).Value2 = (string)dataValue;
break;
// 其他数据类型的处理...
}
}
}
}
```
记得在实际操作时替换`dataSet`和`excel`变量为你的实际数据集和Excel对象。
阅读全文