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

我有这个代码在.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库?

实际的 XLS / XLSX数据必须被发送回来 – 也就是使用库(例如EEPlus )或其他合适的来源生成的数据。

这种常见的黑客/方法的作品,因为Excel“知道如何阅读HTML”。 它实际上并没有将HTML转换为XSL / XLSX,尽pipe它可以保存为一次由Excel加载的电子表格。

更改内容types将不会对数据产生任何影响,反而会有效地阻止这种方法的工作:内容types用于关联将用于打开/读取数据的程序(即Excel)。

所以是的:要生成一个真正的 XLS / XLSX文档,使用一个库。