將預設設定套用至在 MS Excel 中開啟的 CSV 文檔

將預設設定套用至在 MS Excel 中開啟的 CSV 文檔

我們正在開發的系統的最終用戶會獲得一個普通的 CSV 文件,最終用戶將在 MS Excel 中開啟該文件。其中一列將包含由數字字串組成的條目。這些不是數字,而是識別符。我們注意到,應用於此列的預設格式會導致條目被解釋為大數字,隨後以科學記數法呈現。這已經是一種糟糕的用戶體驗——但是等等,它會變得災難性的。保存文件後,數據顯然被解釋為單精度浮點值,並且第六位之後的所有數字都被完全截斷。如果使用者變更格式以使列在儲存前正確顯示,Excel 不會表現出此行為,且資料在儲存時不會損壞。

我發現(1)更改列的格式或(2)禁用公式計算可以防止這兩個問題發生。

現在,我的問題是:在 MS Excel 中開啟 CSV 類型檔案時,預設是否可以採取上述任一操作或其他一些操作來防止上述問題?請注意,要讓客戶同意最終使用者必須停用所有文件(包括 Excel 格式的文件)的公式執行可能是一件極其困難的事情。有什麼方法可以設定全域設定嗎?有什麼方法可以配置如何特別處理 CSV?有什麼方法可以將巨集分發到在所有開啟的 CSV 檔案上執行的使用者 Excel 安裝嗎?

答案1

我發現這可以透過編寫 Excel 外掛程式來完成。在開啟的工作簿上,我可以執行以下操作:

// set format of everything to text
Wb.ActiveSheet.UsedRange.NumberFormat = "@";

// disable further formatting - may not be necessary
Wb.ActiveSheet.EnableFormatConditionsCalculation = "false";

// for any existing cells, overwrite the formatted data with the real data, e.g., the formula
Wb.ActiveSheet.UsedRange.Value = Wb.ActiveSheet.UsedRange.Formula;

這在 Excel 2010 中對我有用。

相關內容