Tablora · 資料庫
讀取CSV欄位內部的引號
在CSV中,加上引號的欄位裡連續兩個雙引號代表一個引號。看看結構檢查工具如何讀取She said "hello",以及反斜線為什麼行不通。
CSV如何在值中寫引號
含有引號的CSV欄位,本身必須用引號包起來,裡面的每個引號都要寫兩次。所以儲存格文字She said "hello"在檔案中會存成"She said ""hello"""。外層的引號是語法,裡面每一對重複的引號代表一個字面上的引號。
有些程式改在引號前加反斜線,這是借自程式語言的慣例。結構檢查工具依循的是CSV規則,不是這種慣例,所以用反斜線跳脫的引號不會被當成跳脫。
檢查Poster這一列
本頁範例包含標題item,note和一筆note為"She said ""hello"""的記錄,「欄位分隔符號」為逗號。結構檢查工具回報2列2欄。第2列第2欄是She said "hello",hello前後各剛好一個引號。
如果在預覽中看到hello兩邊各有兩個引號,表示這個欄位在原始資料中沒有加引號,這段文字很可能根本不是有效的CSV。
無法解析的輸入
- 沒有加引號的欄位中間出現引號,例如外面沒有引號的She said "hi",會被拒絕。工具不會猜測欄位在哪裡結束,而是顯示「請檢查輸入的數值後再試。」
- 引號前的反斜線無法發揮跳脫作用,所以用反斜線跳脫匯出的文字,也會因為同樣的原因被拒絕。
- 結束引號後面還有字元,例如"hello"x,同樣會被拒絕。
- 選取「偵測分隔符號」時,結構檢查工具會依序嘗試逗號、分號、定位字元和直線,只有全部都無法解析時才回報錯誤。
- 加引號的欄位必須緊接在分隔符號之後,或位在一行的開頭,所以開頭引號前有空格也會被拒絕。
修正並匯出含引號的文字
- 在原始匯出檔中找到這個欄位,並確認產生它的軟體是否有標準CSV選項。
- 如果手動修正,就把整個欄位用引號包起來,並把裡面的每個引號都寫兩次。
- 再按一次「計算」,確認儲存格顯示的是單一引號。
- 預覽正確後再使用「下載 (CSV)」;下載時會依同樣的重複規則寫回引號,其他程式也能讀取。
應用程式匯出中的引號
當儲存格含有引號、逗號或換行時,Tablora應用程式的CSV匯出也遵循同樣的規則:用引號包住儲存格,並把裡面的引號寫兩次。在XLSX匯出中,引號單純是儲存格文字的一部分,你看不到任何跳脫處理。
輸入值
- 表格文字
- item,note Poster,"She said ""hello"""
- 欄位分隔符號
- ,
結果
- 列數
- 2
- 欄數
- 2
| item | note |
|---|---|
| Poster | She said "hello" |
- 寬度不同的列
- 0