2012-12-17 47 views
1

我構建了Excel/VBA工具來驗證csv文件以確保它們包含的數據有效。他們的csv可以來自任何地方(從一個完整的unix系統或桌面用戶從Excel中保存數據)。 Excel工具發送給企業,以便他們可以在自己的環境中驗證他們的csv文件,而不必冒數據離開他們的系統的風險。因此,該解決方案需要在本地VBA中,而不是鏈接到外部庫中。如何使用Excel VBA確定文件編碼類型

因此,如果使用VBA,我需要能夠自動檢測UTF-8(帶或不帶BOM)或ANSI文件編碼,並警告用戶,如果這些不是用於csv的文件編碼。

我認爲這可能涉及從文件的開頭讀取幾個字節並根據字節順序標記的存在性確定編碼。

你能幫我讓我開始正確的軌道嗎?

回答

1

假設你可以自由地詢問用戶選擇正確的文件類型,讓他們負責爲他們選擇作爲一個文件)

這意味着,你可以創建一個表單,用戶可以選擇文件名和編碼類型就像我們在file open嚮導中做的那樣。

否則,

我建議你使用FileSystemObject。它返回一個可用於確定編碼的TextStream。我懷疑VBA支持其他類型的編碼,請糾正我,如果它:)並樂意聽到。 :)

這裏是一個鏈接,進一步考慮: -