是的,當您使用 CSV 轉 PDF 工具時,引號內的逗號、雙引號以及換行都受到支援 —— 解析器遵循 RFC 4180 規範,這表示以雙引號包裹的欄位可以包含字面上的逗號、字面上的換行符號,或是以兩個連續雙引號表示的跳脫引號。上一段的第一句話就是簡短的答案:如果您的 CSV 在匯出時依照 Excel、Google Sheets、Numbers 以及大多數資料庫傾印工具的方式為文字欄位加上引號,檔案就能正確解析,無需您做任何前置處理。輸出是透過瀏覽器的 canvas 算繪並逐頁組成的多頁橫向 PDF,因此您在解析表格預覽中看到的內容,與下載文件中最終呈現的內容完全一致 —— 包括多行儲存格、嵌入的逗號,以及重複出現的標頭列。

are quoted commas and line breaks supported when i use csv to pdf
CSV 轉 PDF 是否支援引號內的逗號與換行

RFC 4180 引號規範對您的 CSV 意味著什麼

RFC 4180 是 IETF 制定的規範,定義了逗號分隔值應如何處理包含分隔符本身的文字。若沒有引號機制,包含逗號的欄位會被誤判為兩個獨立的欄位;若沒有跳脫規則,包含雙引號的欄位會提前終止該欄位。CSV 轉 PDF 工具直接實作了這些規則,因此您可以直接將從 Excel、Google Sheets、Numbers 或任何遵循相同慣例的資料庫工具匯出的檔案交給它,並獲得一份乾淨的表格。

解析器圍繞以下三種模式所建構:

  • 引號內的逗號 —— 「包裹」欄位內的逗號會被視為內容,而非分隔符。
  • 雙引號 —— 引號欄位內兩個連續的雙引號會算繪為單一字面上的引號。
  • 引號內的換行 —— 引號欄位內的換行會被視為內容,而非該列的結束。

這三條規則合計涵蓋了絕大多數實際的 CSV 匯出情境。參考語法定義記載於 IETF RFC 4180,解析器在邊緣情況(例如尾端空白欄位、寬度不一的列、以及 CRLF 對比 LF 的記錄終止符)上也與引擎的判斷一致。

工具接受哪些引號規則(又拒絕哪些)

解析器刻意採取嚴格作法:如果您的 CSV 遵循 RFC 4180 引號語法,就會產生一個矩形的表格;若不符合,工具會以明顯失敗的方式回應,而非默默地誤讀資料。了解哪些輸入會被接受、哪些會被拒絕,正是產出乾淨 PDF 與令人困惑 PDF 之間的差別所在。

模式範例結果
欄位內的引號逗號"Smith, John",42解析為兩個欄位:Smith, John 與 42
引號欄位內的雙引號"He said ""hi""",ok在一個欄位中算繪為 He said "hi",下一個欄位為 ok
引號欄位內的換行"line one\nline two",x兩行都保留在同一個儲存格中;該列會接續至下一個欄位
分隔符之間的空白欄位a,,c三個欄位;中間的儲存格為空
補齊至最寬列的不整齊列a,b,c 後接 d,e第二列會變成 d、e、"",使所有列對齊
CRLF 或 LF 記錄終止符(任一種行尾)無論平台為何,皆接受作為列分隔符
未閉合的引號"oops,more明顯失敗 —— 不會產生 PDF
在未引號內容之後才開啟的引號abc"def",g明顯失敗 —— 不會產生 PDF
空的資料集(完全沒有列)明顯失敗 —— 不會產生 PDF
超出上限101 列或更多明顯失敗 —— 不會產生 PDF

底部四列是有意為之。一個會在引號格式錯誤時默默嘗試復原的解析器,將會產生列與原始 CSV 無法對齊的「表格」,這比完全沒有表格更糟糕。透過明顯失敗的方式,工具能迫使您修正來源,而非印出一份誤導的列印輸出。另一方面,不整齊列則常見且無害:解析器會將較短的列以空白儲存格補齊至資料集中最寬的一列,讓各欄對齊。

CRLF(Windows 樣式)與 LF(Unix/macOS 樣式)行尾皆接受作為記錄分隔符。儲存格文字會經過空白字元標準化以進行算繪,而編輯器中的原始 CSV 文字則維持不變。

如何轉換含有引號逗號與換行的 CSV

  1. 在瀏覽器中開啟 CSV 轉 PDF 工具。整個工作流程中不會發生任何上傳動作。
  2. 將不超過 200 KB 的 .csv 檔案拖入上傳區,或直接將逗號分隔的資料貼到編輯器中。請確認標頭列是輸入內容的第一列。
  3. 初步檢查您的表格是否落在 100 列、12 欄以內。任何超出這些限制的情況都會明顯失敗,因此在此步驟之前修剪或分割檔案是最快的修正方式。
  4. 選擇建立 PDF。解析器會依據 RFC 4180 規則執行,不整齊列會以空白儲存格補齊,每一頁 canvas 會以 PNG 嵌入。
  5. 下載橫向 PDF。開啟後請特別檢視三件事:被省略號截斷的儲存格(文字長度超出欄位寬度)、未能正確算繪的 Unicode 字元,以及落在尷尬位置的換頁。

如果引號內的逗號或換行沒有被保留下來,問題幾乎必定出在來源的引號格式錯誤 —— 例如未閉合的引號、在部分未引號文字之後才開啟的引號,或是手動編輯時插錯位置的引號。請在任何文字編輯器中修正來源 CSV,再重新執行轉換。編輯器中的原始 CSV 文字永遠不會被工具本身修改,因此您貼上的內容就是被解析的內容。

多行儲存格在算繪後的 PDF 中呈現為何

由於解析器會保留引號欄位內的換行,含有多行內容的儲存格在橫向 PDF 中會算繪為較高的列,而非表格中的兩列。標頭列會在每一頁以灰色色帶重複出現,替代的列底色也會延續下去,即使某一列高度是鄰列的兩到三倍,儲存格框線仍會維持整個格狀結構。

超出欄寬的文字會以省略號明顯截斷。這是有意為之:底層網格具有固定的可列印寬度,無法顯示無限內容,因此算繪時偏好乾淨、可預測的版面,而非透過一個過大的儲存格將其他欄位擠出頁面。編輯器中的原始 CSV 文字永遠不會被修改 —— 截斷僅發生在 canvas 算繪階段。若需要某欄顯示完整文字,實際可行的做法包括縮減來源內容、透過減少欄數來拓寬可列印區域,或在轉換前將表格拆分成數個區塊。

Unicode 之所以能保留,是因為每一頁 canvas 會以 PNG 嵌入由 pdf-lib 組裝的 PDF,所使用的字型則是瀏覽器本身已有的字型。取捨在於,若系統已安裝字型中缺少某個字元,該字元可能會顯示為空白方框或替代字符。對大多數西方、西里爾、希臘及 CJK 文字而言這不成問題,但若您的表格含有罕見符號,請在分享前檢視算繪後的 PDF。

需要注意的限制與行為

此工具圍繞著一個小巧、可預測的網格所建構,並明確不試圖成為一套試算表。事先了解其界線,能避免徒勞的轉換。

  • 100 列、12 欄、200 KB 檔案。任何超出這些上限的情況都會明顯失敗,而不是默默地截斷。
  • US Letter 橫向頁面。頁面大小固定,沒有提供 A4 或直向選項。若您的表格需要直向,請使用其他工作流程。
  • 每個儲存格皆為文字。數字、日期與貨幣會以檔案中的字面字元算繪。含有 01234 的儲存格會維持為 01234 —— 不會變成 1234。
  • 無公式、排序、合計或樣式。解析器不會評估試算表公式、不會排序列、不會計算合計,也不會保留來源工作表中的合併儲存格、粗體或填色。
  • 沒有遠端資料來源。此工具不會連線至資料庫、API 或線上試算表。它也不會在 PDF 中提供可選取的文字 —— 儲存格屬於光柵化的 canvas 影像的一部分,因此無法從 PDF 進行複製貼上。

對於精簡的參考表格、會議講義、簡易匯出以及快速可列印的快照,上述限制通常反而是優點:輸出可預期且可重現。對於無障礙標記 PDF、可選取的表格文字、數百列資料,或是具有嚴格排版要求的機密產出報表,請使用具備自有 PDF 匯出控制的試算表或報表應用程式。

如需深入了解,請參閱 無需上傳的 CSV 轉 PDF:在地瀏覽器方法。

如需深入了解,請參閱 CSV 轉 PDF 是否保留公式或試算表格式?。