為什麼匯出的 CSV 多了一個單引號
多出的單引號可能是刻意加上的。看看公式防護如何改變匯出的資料。
匯出 CSV 時開頭的單引號可能是刻意加上的。當啟用 保護 CSV 免受試算表公式影響 時,CozyToolkit 會在某些類似公式的值前加上單引號。此選項預設為開啟。
例如,文字 =1+1 會變成 '=1+1。這有助於防止試算表將該值當作公式解析。這也會改變底層資料,因此後續的 CSV 轉 JSON 會保留這個單引號。
匯出四個看似普通的值
下載 範例 JSON,並上傳至 CSV、JSON 與 YAML 轉換器。設定 從 為 JSON,目標 為 CSV。打開 選項,保持 保護 CSV 免受試算表公式影響 為啟用。
範例有四個標記的值。在 程式碼 輸出中,匯出的欄位為:
| 原始字串 | 匯出 CSV 欄位 | 解析後的值 |
|---|---|---|
=1+1 |
"'=1+1" |
'=1+1 |
@cozytoolkit |
"'@cozytoolkit" |
'@cozytoolkit |
-12 |
"'-12" |
'-12 |
Ready to share |
Ready to share |
Ready to share |
使用 下載 儲存 CSV,或查看 已檢查的匯出檔案。範例使用無害的算術表達式、帳號名稱和偏移量,方便觀察轉換效果。
表格 標籤可預覽輸入紀錄。用 程式碼 或下載的 CSV 檔檢查匯出時新增的單引號;輸入表格不會顯示這些已轉義的字串。
CSV 的雙引號作用不同
外層雙引號屬於 CSV 語法,CSV 解析器讀取欄位時會移除它們。雙引號內的單引號是欄位值的一部分,解析後仍會保留。
選擇 將結果作為輸入,將匯出的 CSV 轉回 JSON。關閉數字偵測後,第一個值變成 "'=1+1",而非 "=1+1"。 轉回的 JSON 顯示四個結果。這是刻意的資料變更,不是引號錯誤。
若下游系統需要完全相同的原始字串,請保留原始 JSON。不要無差別移除所有開頭的單引號:有些可能是原始資料的一部分。
了解此選項檢查的內容
轉換器使用 Papa Parse 的 公式轉義選項。它會在以 =、+、-、@、Tab 或回車開頭的值前加前綴。這包括無害的帳號名稱和負數字串;此選項不會判斷每個值是否有害。
這是有限的匯出預防措施,無法保證任何試算表都能安全開啟任何 CSV。現行檢查未涵蓋所有可能的前綴,如換行符或全形符號。試算表匯入設定不同,儲存再開啟 CSV 可能改變轉義方式。 OWASP 解釋 CSV 注入的限制。
對來源不可信的資料,請透過試算表的文字匯入功能,明確將相關欄位視為文字,並檢查結果。確認接收檔案的應用程式與版本的行為。
將精確資料匯出與試算表匯出分開
當可信的機器對機器流程需要完全相同的原始字串時,關閉保護可避免新增單引號。請將該檔案與供人用試算表開啟的檔案分開保存。若不需要表格檔案,JSON 通常是更清楚的交接格式。
我們的 結果紀錄 比較了 2026 年 11 月 2 日實際轉換器開啟與關閉保護的差異。它確認匯出文字與解析器讀回的值。並未聲稱測試過 Excel、LibreOffice 或其他試算表,也不保證公式轉義讓來源不可信的檔案完全安全。