繁体   English   中英

ASp.NET:建议一个最佳选项,以允许用户以Excel格式在客户端下载数据网格中的数据

[英]ASp.NET: suggest a best option to allow the user to download the data in the datagrid in the client side in Excel format

请提出最佳选择,以允许用户以excel格式将datagridView中的数据从页面下载到客户端计算机。

我有一个绑定到datagrid视图的数据集,甚至可以将数据集中的数据下载到客户端的Excel中。

请问是否有可能生成一个excel并允许用户在客户端下载它?

我正在使用asp.Net,C#,SQL Server,Excel。

请帮忙 !

我建议您输出逗号分隔值(CSV)文件。 它们相对容易地为解决方案编写代码,您可以将它们直接写出而无需进行互操作,并且它们可以在Excel中直接打开。

Excel可以将HTML表直接读取到电子表格中。 您只需要向下发送网页中显示的相同数据(减去例如超链接),并将Content-Disposition标头设置为attachment并使用合适的mime类型使客户端打开Excel。 然后,Excel将下载的HTML读入工作表。

我们在一些应用程序中做到了这一点。 这实际上并不难:我们使用相同的aspx页面(向其发送参数以表明我们希望从aspx生成一个excel文件),并使用几行代码将aspx生成为xls文件。

  1. Page_Load方法中的第一行代码应为:

     //open as excell file Response.Buffer = true; Response.ContentType = "application/vnd.ms-excel"; string FileName = this.Page.ToString().Replace("ASP.", "") + ".xls"; // so the file can be saved as excel Response.AppendHeader("content-disposition", "filename=\\"" + FileName + "\\";attachment"); 
  2. 在此模式下,请务必禁用ViewState,这一点很重要。 否则可能会完全混淆Excel并产生错误。

这就是我们要做的,而且效果很好。

我应该补充一点,微软的建议是在将GridView导出到Excel时将其写入HtmlTextWriter,以确保生成的HTML是Excel可以理解的HTML。 这很容易做到(除了生成的异常,但很容易克服),在以下两篇文章中对此进行了很好的解释: Gridview导出到ExcelGridView导出到Excel的广泛研究

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM