从GridView asp.net C# – 服务器组件导出到Excel

我导出到从本地主机,但不在生产服务器上正常工作的GridView擅长。 我猜测有需要在服务器上安装一些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文件,您可以使用您创build的称为RenderControl()的方法将string写入文件。 该方法代码可能会使用您的机器上的Office Interop dll(您可能在您的使用语句和/或项目引用中引用它们)。

不幸的是,在Web服务器上运行时,您的代码受限于允许IIS执行的操作。 即使您在服务器上安装了Office组件,您的网站也将无法访问这些文件。 另外,由于法律上的限制,禁止将互操作文件打包成分发版。

请参阅此处从C#创buildExcel(.XLS和.XLSX)文件

解决scheme:我放弃了将DataGrid写入Excel,因为它需要在服务器上安装Excel组件。 Marc的链接将我带到了我安装的EPPlus(dll),并且像梦一样工作。