LazowskiAnton · Extensions

CsvSmith

直接在 Visual Studio 編輯器中輕鬆閱讀 CSV 和 TSV 檔案:每欄都有自己的色彩,各欄在螢幕上對齊而不變更檔案,捲動時標題列和第一欄始終可見。排序、篩選、移動欄,以及將表格複製為 Markdown、JSON 或 SQL——都可以透過檔案頂端的工具列完成。

免費 · Visual Studio 2022 和 2026 · 14 種介面語言 · .csv、.tsv、.tab、.psv · 已在 2,000,000 列上測試

為什麼選擇 CsvSmith

Visual Studio 編輯器中的 CSV 檔案:每欄都有自己的色彩,各欄對齊,標題列加粗,頂端是 CsvSmith 工具列

是表格,而不是一堵逗號牆

Visual Studio 把 CSV 檔案當作純文字開啟:要找到第五欄,只能用眼睛數逗號。CsvSmith 為每欄著色、對齊各欄並讓標題列始終可見,於是檔案讀起來就像一張表格。

檔案保持原樣

色彩、對齊、隱藏的列和隱藏的欄只繪製在螢幕上——檔案中的文字不會被改動。只有標示 變更檔案 · 一次復原 的命令才會寫入檔案,而一次復原即可讓一切恢復原樣。

大型檔案也很快

只剖析螢幕上的行;大型檔案依據其前面的列來測量。排序、篩選和複製都在背景執行。兩百萬列的 CSV 檔案捲動起來和小檔案一樣流暢。

免費,沒有附加條件

沒有訂閱、沒有「Pro」版、不收集資料,也不會在「輸出」視窗或啟動時顯示訊息。我們唯一的請求是:在你用過一段時間之後,到 Marketplace 給個評分。支援 Visual Studio 2022 和 2026,x64 和 ARM64。

功能

編輯器中的表格

開啟 .csv、.tsv、.tab 或 .psv 檔案:它在 Visual Studio 編輯器中仍是文字檔——輸入、搜尋、選取和儲存一如往常——而 CsvSmith 會把它繪製成表格。

部分作用
色彩每欄都有自己的色彩,每六欄循環一次。標題列加粗,分隔符號變暗。深色佈景主題使用明亮的色彩,淺色佈景主題使用同一色相中較深的色彩。
對齊在欄位之間繪製空格,使各欄對齊;這些空格並不在檔案中。數字欄靠右對齊。
寬儲存格任何欄的繪製寬度都不會超過 最寬欄 設定(40、60 或 80 個字元)。較長的值會佔用其後儲存格的空間,一旦有空間,該列的其餘部分就會重新對齊。
標題列第一列捲出檢視後,會以各欄的色彩停留在編輯器頂端一條淡色的帶上。設定了篩選的欄在那裡會有一個橘色的小漏斗。
第一欄表格向右捲動時,第一欄停留在編輯器左緣,使每一列的名稱或索引鍵始終可見。
連結欄位中的網址帶有底線,按 Ctrl+Click 即可開啟。連結在分隔符號處結束——Visual Studio 內建的連結偵測會一直延伸到下一個欄位。

暫留時顯示欄

將指標停在欄位上:工具提示會說明這是哪一欄——第 3 欄:Email · 文字——並顯示值(即使儲存格被截斷也顯示完整內容)、列(列 5 / 12),以及該欄中有多少列有值(已填寫 11 / 12 列)。在大型檔案中,這些計數來自前面的列。

工具列

每個 CSV 編輯器頂端的一條列,採用 Visual Studio 佈景主題的色彩。其中的所有功能都作用於該編輯器中的檔案。

部分作用
色彩 · 對齊 · 標題 · 首欄一次為所有表格檔案切換色彩、對齊、固定標題列和固定第一欄(與設定中的開關相同)。
分隔符號分隔符號:,(自動)——欄位分隔符號:自動、逗號、分號、定位字元或垂直線。自動模式下,.tsv 和 .tab 使用定位字元,.psv 使用直線,.csv 則依據前幾行選擇逗號或分號。所做的選擇會為此檔案記住。
標題列標題列:是——第一列是否為欄名。選擇 否 時,第一列是資料:它會像其他列一樣被排序、篩選和複製,各欄稱為 第 1 欄、第 2 欄…… 會為此檔案記住。
排序 · 篩選 · 欄 · 轉換針對插入點所在欄和整個表格的功能表,詳見下文。
大小位於右側:1,250 列 · 7 欄 · 無問題;啟用篩選時為 顯示 2,000,000 列中的 3 列。

編輯器快顯功能表的 CsvSmith 子功能表中也有相同的命令,並且可以在 工具 › 選項 › 環境 › 鍵盤 中為每個命令指定快速鍵(搜尋 CsvSmith)。

右端的 × 可隱藏工具列;設定中的 顯示工具列 可將其恢復。

排序

將插入點放在某欄中並選擇 排序:視為文字 A → Z 或 Z → A,視為數字從小到大或從大到小,視為日期從舊到新或從新到舊。功能表會顯示欄名:依「Amount」,視為數字,從大到小。

訂單檔案上方 CsvSmith 工具列的排序功能表,以及顯示所在欄和選取儲存格彙總的狀態列

各列在檔案中排序,一次復原 即可還原。標題列保持在最前;引號內含換行的記錄整筆移動;檔案的行尾符號保持不變。不是數字或日期的值排在其他值之後。

排序在背景執行。超過 1 億個字元的檔案,以及含有從未閉合之引號的檔案,不會被排序——狀態列會說明原因。

篩選

篩選 會隱藏不符合的列——僅在螢幕上,檔案不會變更。為插入點所在的欄選擇 依「Country」篩選…:一個小對話方塊會列出該欄的值及其數量。

依國家/地區篩選的兩百萬列 CSV 檔案:隱藏的列摺疊成類似 ⋯ 篩選隱藏了 1,240 列 的文字,旁邊是列出該欄值的 CsvSmith 篩選對話方塊
部分作用
值勾選要保留的值;搜尋方塊可縮小清單範圍,全選 和 全部不選 作用於目前顯示的值。最多列出 1,000 個值及其數量。
文字包含保留欄位中包含該文字的列;不區分大小寫。
數字介於 · 日期介於適用於數字欄或日期欄:兩個邊界,任一邊界都可以留空。不含時間的日期涵蓋一整天。
僅「值」在篩選功能表中:按一下即可只保留含有插入點處值的列。

隱藏的列摺疊成一行——⋯ 篩選隱藏了 1,240 列——按兩下即可重新顯示;如果關閉 標明被篩選隱藏的列,則只在上一列結尾顯示一個小 ⋯。工具列顯示 篩選(2) 和 顯示 2,000,000 列中的 3 列;清除篩選 會顯示所有列。

篩選屬於檔案:該檔案的每個視窗都顯示相同的列。編輯之後,重新執行篩選 會依目前的文字重新篩選。複製(轉換、複製欄)不包含隱藏的列。

欄

欄 功能表作用於插入點所在的欄。前四個命令只改變顯示;後面的命令會變更檔案,每個都可一次復原。

命令作用
選取欄在該欄的每個欄位上建立選取範圍(多個插入點):輸入即可同時變更所有欄位。
複製欄將該欄的值複製到剪貼簿,每行一個。
在螢幕上隱藏欄其欄位繪製為 …,其他欄隨之靠攏;檔案不會變更。顯示所有欄 可將其恢復。
在後面新增欄在右側新增一個空欄,標題列中為 新欄。
刪除欄從每一列中移除該欄。
左移欄 · 右移欄在每一列中將該欄與相鄰的欄交換。

轉換

轉換 以另一種格式複製整個表格——或僅複製選取的列。被篩選隱藏的列不包含在內。

CsvSmith 工具列的轉換功能表,以及複製為 Markdown 表格、JSON 和 SQL INSERT 陳述式的相同各列
命令作用
複製為 Markdown 表格GitHub 風格的表格;數字欄標示為靠右對齊(---:),| 會被逸出,換行寫為 <br>。
複製為 JSON以欄名為索引鍵的物件陣列;數字欄中的數字寫為數字,其中的空欄位寫為 null。
複製為 SQL INSERT每列一條 INSERT INTO orders (…) VALUES (…);,資料表名稱取自檔名;文字放在單引號中,數字不加引號,空數字寫為 NULL;屬於 SQL 關鍵字的欄名放在雙引號中("Order")。
另存為 CSV… · 另存為 TSV…將表格以逗號或定位字元分隔寫入另一個檔案,並在需要時為欄位加上引號。
格式化為對齊文字將空格寫入檔案,使各欄在任何編輯器中都對齊。一次復原。
緊湊格式刪除分隔符號兩側的空格(引號外)。一次復原。

狀態列中的欄和彙總

Visual Studio 的狀態列顯示插入點所在的列和欄。選取儲存格——透過滑鼠拖曳、方塊選取(Alt+拖曳)或 選取欄——狀態列會顯示儲存格數量和相異值的數量;對於數字,還會顯示總和、平均值、最小值和最大值:

列 128 · 第 5 欄:Amount
Amount: 24 個儲存格 · 總和 18,240.5 · 平均 760.02 · 最小 12 · 最大 2,400 · 計數 24 · 相異值 21

彙總在背景計算,最多計算 100,000 個儲存格。

提示

三種提示,與 SmithWorks 系列共用:每則文字都以 CsvSmith: 開頭,其工具提示中有 不再顯示此類提示,安裝 LensSmith 時提示還會顯示在行尾。

CSV 檔案中多出一個欄位的列下方有綠色波浪線,以及 CsvSmith 提示的工具提示
提示何時顯示文字
欄位數錯誤某列的欄位比標題(沒有標題的檔案則為第一列)多或少:缺少分隔符號,或有本應放在引號中的分隔符號。CsvSmith: 第 9 列有 7 個欄位,標題有 6 個欄位。
引號未閉合未閉合的引號會把檔案的其餘部分全部變成一個欄位。CsvSmith: 在第 2 欄開始的引號未閉合。
標題名稱重複標題列中有兩欄名稱相同(不區分大小寫);灰色圓點。CsvSmith: 「Email」是第 3 欄和第 6 欄的標題。

每種提示都可以在設定的 編輯器中的提示 下關閉,也可以直接在提示中關閉。

大型檔案

CsvSmith 繪製時從不剖析整個檔案:只讀取螢幕上的行。它已在兩百萬列的 CSV 檔案上測試——捲動、色彩和對齊都與小檔案一樣快。

超過 20 MB 或 200,000 行的檔案依據其前 5,000 列來測量:欄寬和類型、工具提示中的計數以及工具列中的大小(2,000,000 行文字 · 7 欄 · 前 5,000 列中:無問題)。排序、篩選和複製仍會在背景處理每一列。

為保持 Visual Studio 回應迅速而設的限制:排序和欄編輯最多 1 億個字元;複製最多 100,000 列;彙總最多 100,000 個儲存格。達到限制時,狀態列會加以說明,且不做任何變更。

設定

工具 › 選項 › SmithWorks › CsvSmith。每個選項都有簡短說明,介紹它的作用。

選項預設值
為欄著色開
對齊欄開
最寬欄40 個字元
始終顯示標題列開
始終顯示第一欄開
暫留時顯示欄名開
顯示工具列開
在狀態列中顯示欄和彙總開
標明被篩選隱藏的列開
提示:欄位數錯誤開
提示:引號未閉合開
提示:標題名稱重複開
請求在 Marketplace 上評分開

設定以及為每個檔案選擇的分隔符號和標題列儲存在 %LocalAppData%\CsvSmith 中。重設為預設值 會重新開啟所有選項。

CsvSmith 選項頁面
選項頁面。

常見問題

CsvSmith 會變更我的檔案嗎?

不會自行變更。色彩、對齊、固定標題、篩選和隱藏的欄只繪製在螢幕上。只有當你選擇排序、新增、刪除或移動欄、格式化為對齊文字或緊湊格式時,檔案才會變更——每項操作都是復原中的一步。

我的檔案副檔名不同(.txt、.dat)。CsvSmith 能開啟它嗎?

CsvSmith 作用於副檔名為 .csv、.tsv、.tab 和 .psv 的檔案。其他副檔名的檔案仍為純文字;將複本另存為 .csv(或 .tsv)即可以表格形式檢視。

欄分錯了——檔案使用的是分號(或定位字元)。

按一下工具列上的 分隔符號,然後選擇分號、定位字元、垂直線或逗號。CsvSmith 會為該檔案記住此選擇。自動模式會查看 .csv 檔案的前 20 行,在逗號和分號之間做出選擇。

我的檔案沒有標題列。

在工具列上選擇 標題列:否。這樣第一列就是資料:它不會被固定或加粗,並會像其他列一樣被排序、篩選和複製。會為該檔案記住。

排序出錯了。要怎麼恢復原來的順序?

執行一次 編輯 › 復原(Ctrl+Z):整個排序是一步,名為 排序各列。欄編輯和格式化也是如此。

大型檔案會拖慢 Visual Studio 嗎?

不會。只剖析螢幕上的行,大型檔案依據其前面的列來測量,耗時的工作——排序、篩選、複製、彙總——都在背景執行。如果檔案超出限制,狀態列會加以說明。

CsvSmith 會向任何地方傳送資料嗎?

不會。它只讀取您在編輯器中開啟的檔案,別無其他——沒有遙測,沒有網路要求。設定保存在您的電腦上。

在哪裡回報問題或建議新功能?

請在 GitHub 上的 Feedback 存放庫中建立 issue——那裡有用於回報錯誤和提出建議的表單(請替換範例中的私密資料)。也可以使用 Marketplace 上的 Q&A 索引標籤。

變更記錄

1.0.0