将 .NET DataSet 导出到 Excel 工作簿






2.33/5 (2投票s)
如何将 .NET DataSet 导出到 Excel 工作簿。
引言
本文中解释的代码将 DataSet
导出到 Excel 工作簿,DataSet
中的每个 DataTable
对应一个工作表。
背景
没有特别的限制,只是将 DataSet
导出到 Excel 表格的一种简洁方便的方法。我发现这在尝试调试/调查数据错误时很有帮助。
使用代码
这就是它的全部,精彩呈现。generateIdentity
布尔值用于强制/插入一个 IDENTITY
字段覆盖在第一列的顶部,因此您必须确保在表中定义了 IDENTITY
列,但未填充数据 - 但是,通过对代码进行少量修改,很容易 INSERT
此列。请注意,您需要在项目中引用 Microsoft Excel 11.0 对象库。
using Office = Microsoft.Office.Core;
using Excel;
[...]
private static void DataSetToExcel(DataSet ds, Boolean generateIdentity)
{
Excel.Application xlApp = new Excel.Application();
xlApp.Visible = false;
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
for (int k = 0; k < ds.Tables.Count; k++)
{
System.Data.DataTable dt = ds.Tables[k];
Worksheet ws = (Worksheet) wb.Worksheets.Add(Missing.Value,
Missing.Value, Missing.Value, Missing.Value);
ws.Name = dt.TableName;
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
if (i == 0)
ws.Cells[1, j + 1] = dt.Columns[j].ColumnName;
ws.Cells[i + 2, j + 1] = (j == 0 && generateIdentity) ?
(i + 1).ToString() : dt.Rows[i][j].ToString();
}
}
}
xlApp.Visible = true;
}
历史
- 版本 0.1 - 初次发布,欢迎评论!特别是如果您不喜欢将工作表添加到工作簿的从后到前的顺序;任何建议都将虚心接受并表示感谢。