从GridView asp.net C#导出到Excel-服务器组件
本文关键字:Excel- 服务器 组件 GridView asp net | 更新日期: 2023-09-27 17:57:27
我正在从GridView导出到excel,它在本地主机上运行良好,但在生产服务器上不正常。我猜服务器上需要安装一些excel组件。有人知道我需要安装什么才能正常工作吗?
GridViewAllApps.DataBind();
Response.Clear();
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "attachment;filename=Applications.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridViewAllApps.RenderControl(hw);
string style = @"<style> .textmode {mso-number-format:'@; } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
LainB,
生产服务器上出现了哪些错误?您的网格子类通过html编写器将网格渲染到Excel文件,您可以使用创建的名为RenderControl()的方法将其字符串写入文件。该方法代码可能利用了计算机上的Office Interop dll(您可能在using语句和/或项目引用中引用了它们)。
不幸的是,在web服务器上运行时,您的代码受到IIS允许执行的操作的限制。即使在服务器上安装了Office组件,您的网站也无法访问这些文件。此外,由于法律限制,可能会禁止将interop文件烘焙到分发版中。
请参阅此处从C#创建Excel(.XLS和.XLSX)文件
解决方案:我放弃了将DataGrid写入Excel,因为它需要在服务器上安装Excel组件。Marc的链接把我带到了EPPlus,我安装了它(dll),工作起来就像做梦一样。