iT邦幫忙

0

CSV檔格式跑掉

  • 分享至 

  • xImage

CSV檔在儲存的時候都會提醒格式有可能遺失的訊息,

請教諸位高手,

要怎麼讓CSV檔在儲存的時候保留0開頭的數字呢?(ex.手機號碼0開頭、商品編碼0開頭)

有google過,在欄位打="00123"就會保留,但測試的結果是失敗的QQ(再打開檔案看就變成123)

小的是資訊新手~如有問題不明確的地方請多指教><"

ps.不是找回0哦~是能夠存著,不會在匯入的時候說檔案內容不對這樣

改用 access
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2018-10-09 13:49:09
最佳解答

其實那不是你csv的問題,而是excel的問題。
畢竟csv只是單純的儲存值,並沒有所謂的欄位屬性的特性。

所以一但你將csv讀入excel,其excel就會依照其預設的特性給於相關屬性。
一般會直接給「通用」

通用的特性就是會將數值文字,統一視為數值。其餘的才會是文字。

依你的情況,當用excel讀入時。使用="00123"的情況下,會先跑函數運算。自動視為文字模式。
所以在一開始的話還是可以正常顯示沒錯。

可是該欄位其實並沒強制為「文字模式」,而還在「通用模式」下只是用文字方式顯示。
一但做了修改儲存後,就會改採用「通用模式」去記錄。這時候,其="00123"早就已經不存在。
會變成 00123 這樣子。一但轉回通用模式後,自然就會視為數值了。

請記得excel其實是為了計算及運算為主的一個軟體。所以數值字串變成數值模式是一定必要的。
這是excel特性,你無從修改。除非你轉存xls。並將其宣告為文字欄位後再儲值就行了。
畢竟csv並無法去記錄欄位格式。

但也不是沒有解決的方式。認真來說。office2007後的系統的檔案。其實都是xml的組合檔。
你們可以試試將某個doc檔或是xls檔,先改成zip或rar等壓縮檔的副檔名後解壓。
你會看到一些目錄跟一個xml檔。其xml檔就是你的內容。目錄內大多數是空的,少部份檔案可能會有圖片或是特規的內容。就會放在這裏。

一般目前後端程式如php語言,有一些excel的外掛或套件的,其實就是運用其xml檔的原理其建立成xls格式的檔案後做壓縮。就可以給excel讀檔且也可自定義格式了。

你往這方面去想去做吧。想直接用csv的方式是不太可能做的到,畢竟那也只是儲存值。

看更多先前的回應...收起先前的回應...

這的確是excel的問題。

erwinho iT邦新手 5 級 ‧ 2018-10-10 07:39:56 檢舉

沒錯!想用直接用excel讀取csv是無法達成,但別誤解excel做不到,改用excel的資料匯入即可,會有類似資料剖析的操作介面。

erwinho iT邦新手 5 級 ‧ 2018-10-10 07:39:56 檢舉

沒錯!想用直接用excel讀取csv是無法達成,但別誤解excel做不到,改用excel的資料匯入即可,會有類似資料剖析的操作介面。

erwinho iT邦新手 5 級 ‧ 2018-10-10 07:39:56 檢舉

沒錯!想用直接用excel讀取csv是無法達成,但別誤解excel做不到,改用excel的資料匯入即可,會有類似資料剖析的操作介面。

「想直接用csv的方式是不太可能做的到」

「,改用excel的資料匯入即可」
兩者是不一樣的。

運用excel一些操作怎麼可能做不到。但就是要特別的操作。
就你說用匯入的方式好了。你有辦法教每一個人使用嗎?
單純自已操作沒問題,但目前是要將檔案給別人操作。
這樣就會有問題。

1
小魚
iT邦大師 1 級 ‧ 2018-10-09 12:09:57

Excel有欄位格式,
CSV是不是也有呢?
感覺你的欄位格式是數字,
怎麼跑都會是數字...

sally0615 iT邦新手 5 級 ‧ 2018-10-09 12:22:59 檢舉

我試過數字前加"'",也試過右鍵改儲存格格式為文字,後來也參考過這篇http://jck11.pixnet.net/blog/post/3732400-%E7%94%A2%E7%94%9Fexcel%E7%9A%84csv%E6%AA%94%E6%99%82%E4%BF%9D%E7%95%99%E5%89%8D%E9%9D%A2%E7%9A%840%3F
但都不行><

小魚 iT邦大師 1 級 ‧ 2018-10-09 12:40:45 檢舉

我試過了,
好像某種條件下會成功,
但再存一次再開就失敗了...
還是放棄SCV投入Excel懷抱吧...

2
rogeryao
iT邦超人 7 級 ‧ 2018-10-09 13:08:31

A.
1.設定儲存格格式為文字 , 輸入 01234
2.存為 a.csv
3.對話框...可能會遺失 , 選"是"
B.
1.打開 Excel
2.選"資料"頁籤
3.選"從文字檔",開啟 a.csv 檔 ,匯入
4.選"分格符號",下一步
5.選"逗點",下一步
6.選"文字"(預設值:一般),完成
7.選"新工作表",確定

erwinho iT邦新手 5 級 ‧ 2018-10-10 07:31:00 檢舉

這個就是正解!
如果是excel2010以後,也可以用powerquery處理。

0

CSV檔 用 notepad++ 編輯看看,
簡單一句話 CSV檔 不會讓資料消失,
只有excel的格式處理會~

0
marlin12
iT邦研究生 5 級 ‧ 2018-10-09 21:10:46

把excel文件儲存為CSV檔的時候,如果要保留數字的0開頭,就要在[儲存格格式]的[數值格式]裏設定。
(例如,若輸入數字 2079,儲存格的數值格式設定為的[00000000],則會顯示為[00002079],而在儲存為CSV檔的時候,亦會保留數字的0開頭。)
數值格式設定
[參考]
Excel-在儲存格中輸入0開頭的數字

0
阿儒
iT邦新手 4 級 ‧ 2018-10-11 23:09:31
'00123

我要發表回答

立即登入回答