如何将我的webapp中的数据导出到ASP.NET中的Excel工作表(VB.NET,SQL 2005)?
答案 0 :(得分:3)
更改ASP.Net页面的内容类型
Response.ContentType = "application/ms-excel"
答案 1 :(得分:3)
我最受欢迎的博客之一是如何使用Excel XML标记从.NET代码生成Excel文档(这不是OpenXML,它是标准的Excel XML ) - http://www.aaron-powell.com/linq-to-xml-to-excel
我还使用VB 9轻松实现了这一点。
虽然这是.NET 3.5代码,但可以使用XmlDocument在.NET 2.0中轻松完成并以此方式创建节点。
然后,只需设置正确的响应标头并在响应中回传即可。
答案 2 :(得分:1)
SpreadsheetGear for .NET将会这样做。您可以使用C#和amp;找到一堆实时ASP.NET样本。 this page上的VB.NET源代码。
免责声明:我拥有SpreadsheetGear LLC
答案 3 :(得分:1)
如果您可以在GridView控件中显示数据,它本身就支持“右键单击 - >导出到Excel”,而无需编写任何代码。
答案 4 :(得分:0)
SQL Server Reporting服务是将数据从应用程序导出到Excel的最佳方式。
如果你没有访问/不要使用报告服务,这取决于你想要提取/格式化的数据,可能使用CSV结构而不是Excel可能是最容易的。
答案 5 :(得分:0)
使用Microsoft.Office.Interop.Excel dll创建包含数据的excel文件,然后使用Hunter Daley的下载方法提供下载文件的链接......
答案 6 :(得分:0)
作为一般解决方案,您可能需要考虑编写处理程序(ashx)以进行导出 - 并传递查询参数以重新创建查询以生成数据,或传递标识符以从缓存中获取数据(如果缓存) 。根据CSV是否足以用于Excel导出,您可以格式化数据并将其发回,将ContentType设置为@Hunter建议或使用主互操作程序集(这需要服务器上的Excel)来构建真实的Excel电子表格和将其序列化为响应流。
答案 7 :(得分:0)
我更喜欢使用OLEDB连接字符串。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Excel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";
答案 8 :(得分:0)
不确定导出页面,但是您只想导出数据集或数据表
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", fileName))
HttpContext.Current.Response.ContentType = "application/ms-excel"
Dim sw As StringWriter = New StringWriter
Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
Dim table As Table = New Table
table.RenderControl(htw)
' render the htmlwriter into the response
HttpContext.Current.Response.Write(sw.ToString)
HttpContext.Current.Response.End()
答案 9 :(得分:0)
我使用与CodeKiwi几乎完全相同的代码。如果您有DataTable并希望将其流式传输到客户端浏览器,我会使用它。
如果你想要一个文件,你也可以在每一行/每一行做一个简单的循环,创建一个CSV文件,我想提供一个到客户端的链接 - 你可以使用CSV或XLS的文件扩展名。或者,如果将生成的文件流式传输到客户端,则会提示他们是否要打开或将其保存到磁盘。
对于小型数据集来说,互操作是(上次我尝试过它们)很好,但是没有很好的扩展 - 对于较大的数据集来说,这是非常慢的。