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