Re: [問題] csv檔的格式

看板Programming作者 (藍影)時間14年前 (2011/09/24 14:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
截取自於 #1D3f8CHP (C_and_CPP) 下前半段 以下是我直接從 M$ excel 存成 csv 結果之整理: 1. 若為純文字、數字,且其中不包含雙引號、單引號、逗號, 則直接以逗號分隔。 2. 若該格無任何內容,則直接跳過該格,即會出現連續二個逗號。 (這點和 wiki 上不同, wiki 指明,若無內容會以 ,"", 方式存) 3. 若該格內容有 雙引號或逗號 ,則將為該儲存格加上雙引號, 同時用 notepad 檔開啟結果 ,會發現原本的雙引號會以 2個雙引表示 ex: 12"27"53(excel 顯示) ---> "12""27""53"(csv文本) 4. 若該格內容「開頭」有單引號,excel 存完後開頭之單引都將不見 ex: '12'34'(excel 也無法顯示第一個單引號) ----> 12'34'(csv 文本儲存) ------- 回到你的問題,我不確定 wiki 上對於 1999 Chevy Venture "Extended Edition" 格式有無完全敘述,但依你之說法,它是屬於txt tab 分隔檔,即是以 [tab] 為分隔, 到時用 M$ excel 也可開啟,所以原之格式大概是 1999[tab]Chevy[tab]Venture "Extended Edition" 注意到 Venture "Extended Edition" 它只有以空白分隔,不是以 tab 分隔, 所以視作同一欄位。 現,若欲存 Veture Extened Edition 在 csv 裡,即使它有空白,但它非分隔符號 tab,存時仍存成 Veture Extened Edition 再加入欄位裡,一個雙引數用 csv 要用兩個雙引號表示的話, Veture "Extened Edition" 就變成 Veture ""Extened Edition"" 但如上述原則說過,當該欄位含有 雙引號 或 逗號 時,將在頭尾再加上一次雙引號 "Veture ""Extened Edition""" 其它欄位部份並無二異。 ※ 引述《apiod ( )》之銘言: : 剛看了wiki : 1999 Chevy Venture "Extended Edition" : 在csv檔會表示成 : 1999,Chevy,"Venture ""Extended Edition""" : 我想問的是 : 為什麼 Vwnture "Extended Edition" : 要變成 "Venture ""Extended Edition""" : 雙引號又不是逗號, : 照原本的Venture "Extended Edition"來表示會有什麼問題嗎? 簡單的說,用現有軟體開,它出現的結果不是個可預期的, 因它非 csv 逗號分隔可接受之格式。 我寫程式的話,會把這種東西額外當作 except 拉出來處理。 : 感謝解惑 -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.78.41 ※ 編輯: tropical72 來自: 180.177.78.41 (09/24 14:27)
文章代碼(AID): #1EVNQaLL (Programming)
文章代碼(AID): #1EVNQaLL (Programming)