帮我将数据导出到Excel。我在数据表中有一个数据列表。
我想将其导出为Excel .xlsx格式,而不使用Open XML。
编程语言:C#.Net版本:2.0
答案 0 :(得分:0)
找到了这个......
public static void DataGridToExcel(DataTable tbl)
{
HttpContext context = HttpContext.Current;
context.Response.Clear();
foreach (DataColumn c in tbl.Columns)
{
context.Response.Write(c.ColumnName + ";");
}
context.Response.Write(Environment.NewLine);
foreach (DataRow r in tbl.Rows)
{
for (int i = 0; i < tbl.Columns.Count; i++)
{
context.Response.Write(r[i].ToString().Replace(";", string.Empty) + ";");
}
context.Response.Write(Environment.NewLine);
}
context.Response.ContentType = "text/csv";
context.Response.AppendHeader("Content-Disposition",
"attachment; filename=export.csv");
context.Response.End();
}
这将从ASP.NET输出一个包含Excel 2007可以打开的CSV文件的响应。如果您愿意,可以将扩展名更改为模仿excel,只需更换以下行即可:
context.Response.ContentType = "application/vnd.ms-excel";
context.Response.AppendHeader("Content-Disposition",
"attachment; filename=export.xlsx");
如果您不需要执行任何复杂的操作,则CSV是最简单的方法。如果您确实要求它真正是原始格式的Excel 2007文件,则需要使用Office库来构建它或从CSV转换它,然后提供/保存它。