「直欄轉逗號分隔清單」工具會將每行一個值轉換成單一水平序列,其中每個值都會用雙引號包起來,並以逗號連接,因此輸出內容是有效的 CSV,即使值本身包含逗號或引號字元,欄位邊界仍能完整保留。每一行輸入會成為一個輸出值:Smith, Jane 這行會變成 "Smith, Jane" 而不是兩個被切斷的欄位,而 6" bolt 會變成 "6"" bolt",因為每個嵌入的雙引號都會被加倍。轉換完全在瀏覽器內進行,接受 Windows CRLF、傳統 CR 以及 Unix LF 換行格式,並在 500,000 字元和 10,000 行的上限內執行,如此一來失控的貼上內容也不會鎖住頁面。去除空白、移除空行,以及區分大小寫的去重複是選擇性的控制項,會在計算最終數量之前執行,因此顯示的數字永遠會與輸出中的值數量一致。

「直欄轉逗號分隔清單」實際上代表什麼
這個詞描述的是一種單向轉換:一個直立的文字區塊會變成單一橫列文字。這種形式在試算表中很常見,以一欄儲存格作為來源;在開發人員的工作流程中也很常見,例如標籤、ID、姓名或網域清單都需要這種形式。當值本身包含逗號或引號時,麻煩就會開始,因為這正是天真的合併方式 (apples, pears, Smith, Jane) 會悄悄地把單一值切成兩個的時候。標準的解決方法是 CSV 引號標記:用雙引號包住每個值、將內部的雙引號加倍來跳脫,然後以逗號連接。這正是 直欄轉逗號分隔清單 工具預設產生的格式,不需要記任何特殊語法。
因此輸出在建構上就是 CSV 安全的:任何解析 CSV 的應用程式,讀回來的欄位數會與來源完全相同。空值會以 "" 呈現,而不是什麼都沒有,這讓缺少的條目變得可見,而不是模糊不清。值內部的空格,例如 New York 或 6 inch bolt,會保持原樣,因為 CSV 引號標記只會改變邊界字元,而不會動到內容。
三個步驟將直欄轉換為逗號分隔清單
- 將每行一個值貼到輸入框中,並決定是否要移除前後空格、空行或重複的值。修剪選項會移除每行開頭和結尾的空格;移除空行會在修剪後丟棄所有空白行;而去重複則會保留每個值的第一次出現,並移除後續完全相同的項目。
- 當任何值可能包含逗號或雙引號時,請保持 CSV 引號標記啟用,然後選擇「Convert column」。引號標記預設為開啟,因為這是唯一在值內容無法預測時仍能保持正確的模式。關閉引號標記會產生一般的逗號加空格合併,對於短標籤來說沒問題,但對於含有標點符號的值會產生歧義。
- 將輸出下方顯示的最終值數量與來源中的預期值數量進行比較,檢查任何對標點敏感的條目(例如含逗號的姓名或含英寸符號的測量值),然後將結果複製到目的地。
如果目的地是支援 CSV 的應用程式(例如試算表、資料庫匯入工具或資料交換檔案),加上引號的輸出通常是較安全的形式。如果目的地需要 SQL 值、JSON 字串、URL 參數或命令列引數,則引號規則會不同,應該改用具專門用途的格式化工具。
將 Excel 直欄轉換為逗號分隔清單
Excel 使用者最常需要這項轉換,而最乾淨的工作流程完全不使用 Excel 公式,讓來源資料在試算表中保持不動。選取該欄,只包含您想要的值並跳過標題列,然後複製選取的範圍。將其貼到輸入框中。無論儲存格是透過 Ctrl+C 從選取範圍複製,還是以文字形式拖曳,該工具都會逐格讀取從 Excel 複製的文字,並將貼上的每一行視為一個值,即使該行包含姓名中的逗號或測量值中的引號也一樣。
保持修剪選項開啟,這樣貼上儲存格邊緣殘留的空格就不會跑到輸出中。保持 CSV 引號標記開啟,這樣含有逗號的值(例如 Doe, John)就不會在後續被切分成兩個欄位。決定去重複是否適合目的地:標籤清單通常希望合併重複項,但發票號碼清單通常必須保留每一行。選擇「Convert column」,然後讀取顯示的值數量,並與您複製的列數進行比較。最終複製的內容可以貼回 Excel 成為單一 CSV 風格的字串,貼到記事本成為逐字序列,或貼到需要帶引號清單的資料庫工具中。
清理控制項的運作方式
每個控制項都是獨立的,按照固定順序執行,而且都有清楚說明,讓最終數量永遠不會令人意外。
| 控制項 | 效果 | 啟用時機 |
|---|---|---|
| 修剪前後空格 | 移除每行開頭和結尾的空格;不會合併值內部的空格。 | 從試算表貼上時永遠開啟;只有在資料本身需要前後空白時才關閉。 |
| 移除空行 | 在執行所選修剪後,丟棄所有空白的行。 | 當空白列被意外拖入時開啟;當空白條目具有意義時關閉。 |
| 移除重複的值 | 保留每個值的第一次出現;後續完全相同的項目會被移除。 | 用於標籤或類別清單時開啟;用於 ID、交易或測量清單時關閉。 |
| 為每個值加上 CSV 引號 | 將每個值用雙引號包起來,並將任何嵌入的雙引號加倍。 | 預設為開啟;只有在確定每個值都不含逗號和引號時,關閉才是安全的。 |
去重複會區分大小寫:Apple 和 apple 會被視為不同,因為悄悄改變大小寫可能會改變目的地系統視為不同的識別碼、產品名稱或代碼。輸出下方顯示的數量反映了所有啟用控制項執行後的結果,因此該數字與原始列數之間的差異,永遠代表某個控制項需要重新檢視,而不是缺少了某個值。
這個工具何時適用,何時不適用
當目的地使用 CSV 或任何尊重雙引號欄位的格式時,這個工具就很合適:試算表儲存格、CSV 檔案、資料交換格式、標籤欄位、可接受帶引號清單的搜尋框,以及閱讀結果的人類能正確解讀的臨時散文內容。對於標籤、姓名、ID、網域、產品代碼以及其他規模不大的、以行為單位的集合,只要使用輸出的人能控制目的地並驗證其語法,這個工具就很實用。
當目的地有自己的跳脫規則時,這個工具就不適合。SQL 字串、SQL 識別碼、JSON 字串、URL 查詢參數以及 shell 引數,全都使用不同的引號或跳脫機制,而這些機制都不是 CSV 引號。例如,在 SQL 字面值中使用 CSV 引號,會產生資料庫拒絕接受的輸出,或者更糟的是,資料庫會接受它,但實際上是把原本應該作為分隔符號的引號當成了內容的一部分。對於這些目的地,正確的做法是使用能夠輸出目的地所預期確切語法的格式化工具,最好再加上繫結參數或參數化查詢,讓值永遠不會內嵌到原始程式碼中。
與相關文字工具的比較
直欄轉逗號的工作介於換行操作和引號格式化之間,有幾個相關工具涵蓋重疊的工作。了解彼此的界線能節省時間,並避免對錯誤的目的地使用錯誤的轉換。
| 工具 | 輸入形式 | 輸出形式 | 最適合 |
|---|---|---|---|
| 直欄轉逗號分隔清單 | 每行一個值 | 加上 CSV 引號、以逗號分隔的序列 | 試算表直欄、標籤清單、支援 CSV 的目的地。 |
| 移除換行符號 | 任何含有換行的文字 | 使用選定分隔符號(或無)的單行 | 在不加引號或不對每個值做處理的情況下替換換行。 |
| 為每行加上引號 | 每行一個值 | JSON、SQL IN 或 CSV 格式的帶引號清單 | 當目的地需要 JSON 或 SQL 跳脫而非 CSV 時。 |
| 移除重複的行 | 每行一個值 | 去除重複的直立清單 | 在執行直欄轉逗號之前清理來源。 |
最接近的同類工具是「為每行加上引號」,它針對 JSON 陣列、SQL IN 子句和 CSV 列進行處理,使用各格式實際需要的跳脫方式。如果目的地是 SQL 或 JSON,那個工具是較安全的選擇。純粹的換行轉換屬於換行工具家族,而在直欄轉逗號步驟之前對來源清單進行批次去重複,有時比啟用工具內建的去重複更乾淨,特別是在非常大的清單中,在加引號之前能先看到保留的值會很有幫助。
限制與隱私
轉換完全在目前的瀏覽器分頁中執行。貼上的值不會被傳送到伺服器,不會儲存任何文件,也不會保留任何輸入記錄,因此重新載入頁面會清除目前的輸入和輸出。實作方式是直接在 CRLF、CR 或 LF 上進行行分割,接著執行所選的修剪和篩選、依插入順序建立的去重複集合,以及一次輸出合併,這就是為什麼即使接近輸入上限,頁面仍能保持流暢。超過 500,000 字元或 10,000 行的貼上內容會在處理前被拒絕,以免失控的貼上內容耗用過多瀏覽器記憶體。在這些限制範圍內,貼上幾千個值是例行操作,輸出可以一次複製並貼到目的地。
相關閱讀:如何比較兩個清單並找出差異。
相關閱讀:3 個步驟將 Excel 直欄轉換為逗號分隔清單。