0
我有一个程序,可以将db内容写入excel电子表格。该功能包含在名为“Search_aspx”的页面中。从vb.net将表格内容写入xls
Response.ClearContent()
Response.Charset = ""
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment; filename=FileName.xls")
Response.Cache.SetCacheability(HttpCacheability.Private)
Dim dg As New DataGrid
dg.DataSource = dtResults
dg.DataBind()
Dim sw As New System.IO.StringWriter()
Dim htw As New HtmlTextWriter(sw)
dg.RenderControl(htw)
Response.Write(sw.ToString)
Response.Flush()
Response.Close()
这工作得很好永远,但上周我迁移的解决方案,新的服务器(Server03到Server08),现在是行不通的。当我尝试保存时,它会询问我是否要“保存search_aspx”而不是“保存FileName.xls”。
这里有什么问题?
编辑:
所有右倾......我把贴在下面的意见,随后梅森的建议,而该网页还问我是否要保存“Search_aspx”。现在已经安装了EPPlus在我的解决方案,正确引用等....
Response.ClearContent()
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("Content-Disposition", "attachment; filename=FileName.xlsx")
Dim package As New ExcelPackage()
Dim sheet = package.Workbook.Worksheets.Add("Data")
sheet.Cells.LoadFromDataTable(dtResults, False)
Response.BinaryWrite(package.GetAsByteArray())
Response.Flush()
Response.Close()
完全理解......但是,根据我们的要求,我需要一个创建xls的'快速和肮脏'的方法。我明白,这不是一个'真正的'xls,但用户只需要这种格式的东西。当使用propre库时,这个过程相对来说太长了。 – mrwienerdog 2015-03-13 16:07:23
@mrwienerdog用户不能使用.xlsx文件吗? Office 2003以后的每个版本的Office和Office XP都支持它。不,这个过程不是“太长”。正如我的博客所示,这很容易。 – mason 2015-03-13 16:08:55
谢谢,先生...我接受了您的建议,并安装了EPPlus。在上面做了一个编辑,但是TL; DR:它仍然是错误的。 – mrwienerdog 2015-03-13 18:15:24