這裡是我的文章備份,原文請看:
http://www.dotblogs.com.tw/mis2000lab/archive/2010/08/26/npoi_excel_chinese_filename.aspx
透過 NPOI輸出 Excel,使用中文檔名
謝謝 jeff的分享,從他的經驗裡面獲得解答。
http://www.dotblogs.com.tw/jeff377/archive/2008/05/17/4028.aspx
之前分享的範例 --
在 Server 端存取 Excel 檔案的利器:NPOI Library v1.21(改寫成VB範例)
http://www.dotblogs.com.tw/mis2000lab/archive/2010/05/07/npoi_excel_vb_asp_net.aspx.aspx
倘若要輸出「中文檔名」的話,程式需稍作修正
Dim sFileName As String = HttpUtility.UrlEncode("中文檔名", Encoding.UTF8)
02 Imports NPOI.HSSF.UserModel
03 Imports NPOI.HPSF
04 Imports NPOI.POIFS.FileSystem
05
06
07 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
08 '== 本範例的資料來源:http://msdn.microsoft.com/zh-tw/ee818993.aspx
09
10 Dim workbook As HSSFWorkbook = New HSSFWorkbook()
11 Dim ms As MemoryStream = New MemoryStream() '==需要 System.IO命名空間
12
13 '== 新增試算表。
14 '== 生成一個空白的 Excel 檔案,並且添加三個指定名稱的試算表 Sheet
15 workbook.CreateSheet("試算表 Sheet A")
16 workbook.CreateSheet("試算表 Sheet B")
17 workbook.CreateSheet("試算表 Sheet C")
18
19 workbook.Write(ms)
20 '== Excel檔名,請寫在最後面 filename的地方
21
22 Dim sFileName As String = HttpUtility.UrlEncode("中文檔名", Encoding.UTF8)
23 Response.AddHeader("Content-Disposition", String.Format("attachment; filename=" & sFileName))
24 Response.BinaryWrite(ms.ToArray())
25
26 '== 釋放資源
27 workbook = Nothing '== C#為 null
28 ms.Close()
29 ms.Dispose()
30 End Sub
謝謝每一位分享的朋友,
「分享」讓智慧愈加地發光
...... 寄信給我 mis2000lab (at) 雅虎.com.台灣 ....................................................................................................
(松崗出版,VB版 / C#版)
範例比上一本書增加 166%,內容(頁數)增加 135%
上 / 下兩集 (2010年)已經出版囉 ~ 歡迎到此參加團購
ASP.NET專題實務( II ):範例集 與 4.0新功能
.................................................................................................... 寄信給我 mis2000lab (at) 雅虎.com.台灣 ........
留言列表