如何在asp.net c#上创建一个真正的XLS文件?

时间:2013-02-28 09:07:28

标签: c# asp.net excel

我有这个代码在.xls文件中将表提取到计算机:

// I have a string which contains HTML table codes, named as excelTable

HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Disposition", String.Format("Attachment;Filename=file.xls", ));
response.Buffer = true;
response.ContentEncoding = System.Text.Encoding.Default;
response.ContentType = "application/vnd.ms-excel";
response.Write(excelTable);
response.End();

我已经看到这不是一个真正的.xls文件。我可以在记事本中打开它,看看我的标准html表格代码。

现在我明白定义ContentType是不够的。那么我还能做些什么来生成纯.xls或.xlsx文件呢?或者我当然应该使用像OpenXML,Interop等Excel库吗?

1 个答案:

答案 0 :(得分:4)

实际必须发回XLS / XLSX数据 - 即使用库(例如EEPlus)或其他合适来源生成的数据。

这种常见的黑客/方法有效,因为Excel"知道如何阅读HTML"。 实际上并没有将HTML转换为XSL / XLSX,尽管它可以在Excel加载后保存为 new 电子表格。

更改内容类型对数据没有任何影响,而是有效地阻止此方法工作:内容类型用于关联将用于的程序(即Excel)打开/读取数据。

是的:要生成真正的 XLS / XLSX文档,请使用库。