如何在不使用Open XML格式的情况下将数据导出为.xlsx格式?

时间:2015-10-12 11:17:38

标签: excel .net-2.0 openxml

帮我将数据导出到Excel。我在数据表中有一个数据列表。

我想将其导出为Excel .xlsx格式,而不使用Open XML。

编程语言:C#.Net版本:2.0

1 个答案:

答案 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转换它,然后提供/保存它。