2011年6月20日 星期一

#VB Table 資料轉換 Excel 問題集

    '先建立目錄
    '寫入時間 ( 是否必要,怎麼顯示)
    '每個欄位的列標題寫入
    '再把 table 裡面每個 cell 的資料值撈出來  (應該要注意 null 的處理)
    '建立寫入 excel 裡
    '型別問題 ( UTF-8 ? )
          是要從 table撈資料, 還是說透過 SQL 去下語法 撈資料


VB內建物件用的不是用 UniCode ,但是經過讀取這個動作時,VB 會不受控制的把它自動轉換為 UniCode ,如果用 Form 2.0 的物件,則本來就是 Unicode 。
所以
1.Text1.Text 在記憶體中不是 Unicode ,但在 VB 中不能直接取用
2.當你用 VB 讀取這個屬性時,也就是指令打下 Text1.Text 時,VB 會自動幫你轉換為 Unicode 。
3.當你用 StrConv(Text1.Text,vbUnicode) 時,代表你針對 Unicode 字串在進行一次編碼,所以會編碼過頭,導致可能會掉字串。
4.當 Text2.Text = StrConv(Text1.Text,vbUnicode) 時,會對雙次編碼的字串進行一次解碼,但有可能因為掉字串而無法完全解回。


=============================================================
透過 StreamWriter 改編碼方式去解決

''建立檔案 (檔案名稱,true附加資料 false覆寫資料,編碼方式 Big5)
 ff = My.Computer.FileSystem.OpenTextFileWriter(fPath & fName, False, System.Text.Encoding.GetEncoding("Big5"))

沒有留言:

張貼留言