|
|
|
|
|
|||||
|
|||||
| 樓主 蔥仔
|
我把DataGrid匯出成Excel,加上了Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8")
但是,匯出來的Excel還是亂碼耶... 該怎麼辦啊? 我的程式碼如下:
本篇文章發表於2007-08-28 16:58
|
||||
| VP、EP、QP、HP該如何使用? | 2010年藍色小舖認證專家風雲榜完全名單 |
| 1樓 |
小弟淺見~~
我剛剛有試了一下有沒有這一行 Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8") 所轉出來的資料都沒有亂碼唷~~ 不過你要不要看看這一篇和你的問題很相同唷 http://www.blueshop.com.tw/board/show.asp?subcde=BRD20070806133719GT4
本篇文章回覆於2007-08-28 18:09
|
||||
| 2樓
作者回應
蔥仔
|
謝謝你
這篇我有看過,也試了文中提到的語法,但還是一樣.. 匯出來的中文資料是亂碼... 真不知道是哪邊出了問題..
本篇文章回覆於2007-08-29 10:11
|
||||
| 3樓 |
試試看將 utf-8 改成 big5如下:
Response.ContentEncoding = System.Text.Encoding.GetEncoding("big5") 祝你好運!!
本篇文章回覆於2007-09-21 10:28
|
||||
| 4樓
作者回應
蔥仔
|
一樣ㄟ...還是亂糟糟
本篇文章回覆於2007-09-24 11:09
|
||||
| 5樓 |
您的問題我有遇過,
也找過許多文章怎麼改都不行, 而且我發現跟匯出的行數多少有關係, 您可以先用記事本把匯出的檔案打開, 然後再直接存檔(不需另存), 然後再用excel打開試試看是不是正常。
本篇文章回覆於2007-09-24 11:42
字數限制:150字,會顯示在討論文章的最下方 *(修改後30分鐘內會顯示出來)
|
||||
| 6樓 |
Dim oStringWriter As New System.IO.StringWriter
Dim oHtmlTextWriter As New System.Web.UI.HtmlTextWriter(oStringWriter) Response.Write(" <meta http-equiv=""Content-Type"" content=""text/html; charset=utf8""> ")'加上語系指定utf-8 Results.RenderControl(oHtmlTextWriter) '這個地方的datagrid改成你datagrid的名字 Response.Write("<style>td{mso-number-format:\@}</style>") Response.Write(oStringWriter.ToString()) Response.End()
本篇文章回覆於2007-09-24 14:48
姜太公釣魚,願者上鉤(簽名檔要修改個人資料才看的到) |
||||
| 7樓
作者回應
蔥仔
|
To JunMing,
用記事本打開來看是含有<Table>等標籤,但中文方面正常,可是存檔後用Excel打開,還是一樣亂糟糟
本篇文章回覆於2007-09-26 16:36
|
||||
| 8樓
作者回應
蔥仔
|
to 小羊.
加上了,可還是一樣亂糟糟
本篇文章回覆於2007-09-26 16:43
|
||||
| 9樓 |
要不要試一下
Response.ContentEncoding = System.Text.Encoding.UTF7; 我是這樣解決的
本篇文章回覆於2007-09-26 17:32
<b>簽名</b>
|
||||
| 10樓 |
用記事本開啟你的 xxx.xls,
看能不能看到 [中文字]... 如果可以看的到, 表示匯出的資料格式正確, (我覺得問題是出在這裡)... 這時...選另存新檔, 會有[編碼] 可以選擇, 看看目前的選項是不是 utf8, 如果不是(如果是ANSI), 那就要把charset=utf8 改為big5 (不過,如果是ANSI的話, 不要加這一行就ok了...改這個也沒意義)
本篇文章回覆於2007-09-26 19:20
姜太公釣魚,願者上鉤(簽名檔要修改個人資料才看的到) |
||||
| 11樓
作者回應
蔥仔
|
To Isk,
用UTF7,不行ㄟ.....匯出來的Excel還是無法正常顯示,連用記事本開來看都沒辦法正常顯示,裡面的數字全部都變得很怪 To 小羊 用記事本開我可以正常的看到中文, 我用另存新檔的時候,格式顯示是utf8,不過我把它改為Unicode重新存檔,再用Excel開啟的時候就OK了。 所以我想說是不是在程式端改為Response.ContentEncoding = System.Text.Encoding.Unicode 就OK,結果不行。 我把須把匯出來的檔案利用記事本改為 utf8 然後再改為 unicode 才能正常的用Excel開啟。 怎麼那麼奇怪。 雖然在程式端指定為utf8,匯出以後再改為unicode可以正確開啟,可以達到我的目的。 可是我的使用者肯定會發瘋! 有啥辦法可以匯出來的Excel就是正確的格式嗎?
本篇文章回覆於2007-09-27 13:40
|
||||
| 12樓
作者回應
蔥仔
|
我找到方法了,
Response.ContentEncoding = System.Text.Encoding.Default 就OK了 是啥原因啊???
本篇文章回覆於2007-09-27 13:44
|
||||
| 13樓
作者回應
蔥仔
|
Response.ContentEncoding = System.Text.Encoding.Default
這一行似乎不是完全通用的。 用一樣的Excel匯出程式,匯出不同的資料時,有些匯出來的還是亂碼....... 真是怪.... Response.ContentEncoding = System.Text.Encoding.Default Response.ContentEncoding = System.Text.Encoding.Utf8 Response.ContentEncoding = System.Text.Encoding.Utf7..等等,都試過了..還是不行...
本篇文章回覆於2007-09-28 16:31
|
||||
| 14樓 |
我在匯出資料時, 是完全不會去改Response.ContentEncoding 的
我只有在web.config指定為 utf8... 我匯出的方式是: Dim ExcelHeader As String = "<html><head><meta http-equiv=Content-Type content=""text/html; charset=utf8""></head><body>" Dim ExcelFooter As String = "</body></html>" Dim TableData As String = "........................................" Dim WriteData As String = ExcelHeader & TableData & ExcelFooter Response.Clear() Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(FileName).ToString()) Response.ContentType = myContentType Response.Write(WriteData) Response.End() ============================== 匯出後的資料:用記事本打開,可以看到中文字,按下另存新檔:檔案格式是utf8 (Excel預設在開檔案時,是用big5的格式去打開的,所以我加上html標籤charset=utf8, 讓Excel知道這個檔案是utf8的格式)
本篇文章回覆於2007-09-28 19:29
姜太公釣魚,願者上鉤(簽名檔要修改個人資料才看的到) |
||||
| 15樓 |
可以問一下你Office是多少?2000?2003?2007?
我遇過用Office2000如果匯出資料量太少會亂碼 好像是M$的Bug,因為一樣的程式用2007就正常
本篇文章回覆於2007-09-29 08:19
<b>簽名</b>
|
| 回覆 |
| 如要回應,請先登入. |
|
![]() |
| 網站導覽| 網站介紹 | 會員權益 | 點數說明 | 加值服務 | 大事紀 | 廣告刊登 |常見問題 | 聯絡我們 |
捨得資訊股份有限公司 版權所有 ©copyright 2004 All Rights Reserved 艾堤數位科技股份有限公司 網站維護、經營管理 | Managed by I-Tea Technology |
|
|