CSV 轉 Excel 轉換器會在您目前的瀏覽器分頁中,把一份以逗號分隔的表格轉成單一 .xlsx 活頁簿,並明確處理三種會悄悄損毀 CSV 資料的模式:帶引號欄位內含的逗號、用兩個雙引號表示一個字面引號,以及帶引號欄位內含的換行符號。每一列 CSV 都會檢查欄位數是否相同,因此當記錄長度不一致時,轉換作業會以錯誤停止,而不是把後續每一欄都向右位移。CSV 第一列會被寫成工作表的第一列,因此標頭會保持為標頭。開頭為 =、+、- 或 @ 的值會寫成文字儲存格,讓接收端的試算表在開啟時不會將它們解讀為公式。整個工作全程在本機執行:檔案會在瀏覽器內讀取、解析並打包成 OOXML .xlsx 封存檔,原始 CSV 永遠不會被傳送到伺服器。輸出是單純的資料匯出,沒有推測出的日期、識別碼、貨幣、地區慣例、格式、合併儲存格、巨集或圖表。

為什麼 CSV 轉 Excel 的轉換通常會遺失資料
在試算表軟體中開啟 CSV 的預設方式,會把每個值視為程式可以重新解讀的內容。當您在 Excel 中雙擊 CSV 檔案時,程式會嘗試推測每一欄是日期、數字、貨幣或字串。這種推測會剝掉帳號的開頭零、把 03/04 轉成「3 月 4 日」(因為您的地區設定如此),並把 1.0 轉成數字 1。接著當您把活頁簿存成 .xlsx 時,這些推測出的型別會成為檔案的內容,而原始 CSV 也無法再從結果中復原。接收端應用程式中常見的症狀,是電話號碼失去了開頭零、識別碼被四捨五入到十五位數,或是字串突然看起來像公式結果。
需要上傳的轉換器還會多出一層風險。檔案會往返經過伺服器,伺服器可能套用不同的編碼、用不同的剖析器重新切分列,並悄悄丟掉一個無法剖析的尾端列。常見的客服單是「總計差了一欄」——通常是因為某個帶引號的逗號被當成分隔符號,或是某列使用了與檔案其他部分不同的換行符號。一條本機、具確定性的轉換路徑可以同時消除這兩種失敗模式。CSV 只會在開啟它的分頁中被剖析一次,每個值都會依照 CSV 本身宣告的型別寫入:文字。轉換過程中不會進行推測,也沒有任何東西會被送到裝置外重新解讀。
轉換器會保留什麼——以及它拒絕推測什麼
剖析器會嚴格依照 CSV 引號規則:帶引號欄位內含的逗號就是資料,兩個雙引號代表一個字面的引號字元,帶引號的欄位可以包含換行符號。任何不符合這條規則的內容——未閉合的引號、閉合引號後格式錯誤的欄位,或是欄位數與其他列不同的列——都會直接被拒絕。轉換作業會以錯誤停止,而不會產生形狀錯誤的活頁簿,因此您下載的檔案要不是正確的,就是根本不存在。
| CSV 模式 | 轉換器的處理方式 |
|---|---|
| 帶引號欄位內含的逗號,例如 "Doe, John" | 保留在同一個儲存格中;不會被視為欄位分隔符號。 |
| 帶引號欄位內含兩個雙引號,例如 "She said ""hi""" | 在儲存格中變成單一字面的 " 字元。 |
| 帶引號欄位內含的換行符號 | 保留為該單一儲存格內的多行值。 |
| CRLF、LF 或 CR 記錄結尾 | 三種都接受;列會被正確切分。 |
| 欄位數與其他列不同的列 | 轉換作業以錯誤停止;不會有任何列被位移。 |
| 未閉合的引號,或閉合引號後格式錯誤的欄位 | 轉換作業以錯誤停止。 |
| 開頭為 =、+、- 或 @ 的文字 | 寫成文字儲存格;永遠不會被當作公式求值。 |
| CSV 第一列 | 寫成工作表的第一列(保留標頭)。 |
實作會將訪客端的值以普通儲存格的形式寫入 SheetJS,不執行任何公式,而活頁簿只有在實際產生 OOXML 封存檔時才會動態生成。檔案中不會寫入任何巨集、外部連結、嵌入指令碼、公式或遠端資料連線。
如何在不遺失資料的情況下將 CSV 轉換為 Excel
使用 CSV 轉 Excel 轉換器 作為一條單一、具確定性的路徑,從本機 CSV 檔案轉成每次開啟方式都相同的 Excel 活頁簿。整個工作都在目前的瀏覽器分頁中執行;不會上傳任何內容。
- 將您的 CSV 文字貼入輸入區,或選擇一個不超過 500 KB 的本機 .csv 檔案。
- 檢查預覽文字:確認帶引號欄位內含的逗號保持在同一個儲存格中、雙引號已合併為單一字面引號、所有帶引號的換行都獲得保留,且每列的欄位數相同。
- 選擇Convert to Excel。瀏覽器會剖析列、建立單一工作表的 .xlsx (工作表名稱:CSV data),若超出任何 CSV 語法規則或硬性上限則以錯誤停止。
- 將產生的 .xlsx 活頁簿下載到您可控制的本機路徑。
- 在目的端的試算表程式中開啟檔案一次,並抽樣檢查有意義的內容——開頭零識別碼、嵌入的逗號、多行儲存格,以及任何開頭為 =、+、- 或 @ 的值——再將其用於正式的業務匯入。
下載後驗證 .xlsx 活頁簿
轉換作業永遠不會丟掉一列、刪減一欄,或寫出半完成的活頁簿,因此檔案大小與原始儲存格數應在合理誤差內相符。請在將會使用該檔案的程式中開啟活頁簿一次,並檢查三件事。必須保留開頭零的識別碼仍應為文字——若開頭零的帳號到手上變成 12345 而非 0012345,代表該文字在下游某處被重新輸入或重新匯入。帶引號的逗號應仍在其儲存格內,而不是被拆開分散到不同欄位。任何來源值開頭為 =、+、- 或 @ 的儲存格都應顯示其原始字元,而非公式結果、空白的儲存格或 #NAME? 錯誤。
接收端的試算表應用程式仍可能對資料型別發出警告,或套用其自身的地區格式,因為 CSV 本身並沒有型別、寬度、顏色、合併儲存格、驗證規則、篩選或列印版面配置。在將活頁簿用於業務匯入之前,請在目的端系統中抽樣驗證一組有意義的內容,並保留原始 CSV 直到該驗證通過,因為這項轉換是 CSV 值的單向匯出,而不是來源檔案的具型別往返。
這條路徑不適用的情境
轉換器畫下了明確的界線,讓失敗得以被看見。CSV 輸入是有上限的:最大 500 KB,最多 10,000 列資料、200 欄,以及總計 200,000 個儲存格。任何超出這些上限的檔案都會以錯誤停止——瀏覽器不會悄悄截斷結果。
| 上限 | 最大值 |
|---|---|
| CSV 輸入大小 | 500 KB |
| 資料列數 | 10,000 |
| 欄數 | 200 |
| 儲存格總數 | 200,000 |
這個工具也是嚴格的轉換器——它不會合併多個 CSV、不會修復毀損的 CSV、不會推測欄位標籤、不會產生公式、不會驗證個人資料,也不會轉換舊版試算表格式,例如 .xls、.ods 或 .xlsm。對於需要不同處理方式的相關任務,開發工具集中提供了對應的本機路徑:
- 已經是 .xlsx、需要轉成 CSV 的工作表,可使用 Excel 轉 CSV 匯出工具——反向操作,同樣具備公式安全保證。
- 需要放進活頁簿的 JSON 陣列,可使用 JSON 轉 Excel 轉換器,它會保留欄位首次出現的順序,且無需上傳即可執行。
- 需要把多份 .xlsx 活頁簿合併成一份有限範圍活頁簿時,可使用 合併 Excel 檔案 工具——2 到 10 份本機檔案,無需上傳。
- 希望以逐步說明呈現同樣「無需上傳」路徑的讀者,可參考 瀏覽器式 CSV 轉表格轉換指南。
當來源 CSV 本身格式正確,且結果必須以單純的 Excel 活頁簿形式開啟時,CSV 轉 Excel 轉換器是最短的本機路徑,能讓每個帶引號的逗號、每個開頭零以及每個看似公式的字串,都留在 CSV 原本放置的位置。
如需更深入的說明,請參閱將 CSV 轉為 HTML 表格用於 Power Automate:更安全的步驟。