2011-08-15 61 views
5

將選擇查詢數據從mysql導出到csv &用excel打開時,前導零不見了。導出爲csv/excel包含前導零的方式

雖然列是VARCHAR,當數據被導出,它寫得像

4567 instead of 04567,是有辦法保持領先的零,而導出爲CSV文件?

+0

你如何導出它們? –

+0

我在sql yog中運行select查詢後導出,一旦我得到輸出,我使用sql yog中的選項導出爲.csv。 – Sharpeye500

+0

裸露的前導零可能會導致麻煩。許多系統會將04567視爲八進制數字,並將其視爲八位數字,給予您2423十進制 –

回答

-3

您需要用雙引號包裝數字,例如:...,"04567",...,但隨後它將被解釋爲電子表格中的文本,因此除非您首先進行轉換(整數不能在Excel中以0開頭),否則整數算術將無法工作)。

+0

我運行使用選擇查詢,我沒有手動。 – Sharpeye500

+0

@Sharpeye,這沒什麼區別......只需在你的varchar列的輸出周圍包裝雙引號。 – Paulpro

+1

從table1中選擇zip_code; - >我是否在查詢中換行?或在Excel中,請。簡單一點。謝謝。 – Sharpeye500

1

導出csv時,將數據放在單引號之間。

即04567將爲'04567'

+1

從表1中選擇CONCAT('\'',zip_code,'\'') – leoh

+0

這也有幫助,謝謝leoh。 – Sharpeye500

+1

現在Excel正在顯示這些引號,這是一種不需要的效果。此外,我還需要在處理文件時刪除它們以獲取數字。 – derloopkat

0

您的CSV文件將具有前導零。只需在文本編輯器中打開它並查看。

問題是Excel和Numbers(對於Mac)將刪除前導零,並將字符串與數字轉換爲數字格式。這是有目的的,因爲大量的輸入到excel來自各種來源,其中數字通常被視爲文本。當你把數字放入excel時,你通常希望用數字(即計算)而不是文本來處理它們。所以他們已經自動處理最常見的用例。

強制excel將數字顯示爲輸入文本而不需要用戶執行任何操作的唯一方法是輸出一個excel文件並在其中指定一個「自定義數字格式」。我建議爲此使用XLS導出庫,因爲它看起來不如將配置文本行添加到CSV文件中那麼簡單。

1

如果您使用的是SSRS,則需要在文本框窗格中輸入需要前導零的文本框,然後向下滾動以格式化並輸入零,以獲取數字中的數字。例如,在一個郵政編碼中,您可以在格式框中輸入00000。我知道這適用於Excel 2013.