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 为每列着色、对齐各列并让标题行始终可见,于是文件读起来就像一张表格。
文件保持原样
颜色、对齐、隐藏的行和隐藏的列只绘制在屏幕上——文件中的文本不会被改动。只有标有 更改文件 · 一次撤消 的命令才会写入文件,而一次撤消即可让一切恢复原样。
大文件也很快
只解析屏幕上的行;大文件根据其前面的行来测量。排序、筛选和复制都在后台运行。两百万行的 CSV 文件滚动起来和小文件一样流畅。
免费,没有附加条件
没有订阅、没有“Pro”版、不收集数据,也不会在“输出”窗口或启动时显示消息。我们唯一的请求是:在你用过一段时间之后,到 Marketplace 给个评分。支持 Visual Studio 2022 和 2026,x64 和 ARM64。
功能
- 每列都有自己的颜色(六种颜色循环),分隔符变暗,标题行加粗——深色和浅色主题均适用。
- 各列在屏幕上对齐,数字右对齐;文件不会更改。列宽不超过 40、60 或 80 个字符。
- 向下或向右滚动时,标题行和第一列始终可见。
- 悬停时显示列:第 3 列:Email、其类型(文本、数字、日期)、值、行,以及有多少行有值。
- 文件顶部的工具栏:视图开关、此文件的分隔符和标题行、排序、筛选、列、转换,以及表格大小。
- 按插入点所在的列,以文本、数字或日期 对行排序,一次撤消 即可还原;标题行保持在最前。
- 按值、文本或数字、日期范围在屏幕上 筛选 行;多列的筛选同时生效。
- 列:选择、复制、在屏幕上隐藏、添加、删除、左移或右移。
- 转换:复制为 Markdown 表格、JSON 或 SQL INSERT;另存为 CSV 或 TSV;将文件格式化为对齐文本或紧凑格式。
- 状态栏:插入点所在的行和列;对于选定的单元格,显示数量、不同值,数字还显示总和、平均、最小和最大。
- 提示:字段数错误、引号未闭合、标题名称重复。
- .csv、.tsv、.tab 和 .psv;自动检测逗号或分号,按 RFC 4180 的规定读取带引号的字段和引号内的换行;字段中的网址会成为链接(Ctrl+Click)。
编辑器中的表格
打开 .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”,作为数字,从大到小。

行在文件中排序,一次撤消 即可还原。标题行保持在最前;引号内含换行的记录整体移动;文件的行尾符保持不变。不是数字或日期的值排在其他值之后。
排序在后台运行。超过 1 亿个字符的文件,以及含有从未闭合的引号的文件,不会被排序——状态栏会说明原因。
筛选
筛选 会隐藏不匹配的行——仅在屏幕上,文件不会更改。为插入点所在的列选择 按“Country”筛选…:一个小对话框会列出该列的值及其数量。

| 部分 | 作用 |
|---|---|
| 值 | 勾选要保留的值;搜索框可缩小列表范围,全选 和 全不选 作用于当前显示的值。最多列出 1,000 个值及其数量。 |
| 文本包含 | 保留字段中包含该文本的行;不区分大小写。 |
| 数字介于 · 日期介于 | 适用于数字列或日期列:两个边界,任一边界都可以留空。不带时间的日期涵盖一整天。 |
| 仅“值” | 在筛选菜单中:一键只保留含有插入点处值的行。 |
隐藏的行折叠成一行——⋯ 筛选隐藏了 1,240 行——双击即可重新显示;如果关闭 标明被筛选隐藏的行,则只在上一行末尾显示一个小 ⋯。工具栏显示 筛选(2) 和 显示 2,000,000 行中的 3 行;清除筛选 会显示所有行。
筛选属于文件:该文件的每个窗口都显示相同的行。编辑之后,重新运行筛选 会按当前文本重新筛选。复制(转换、复制列)不包含隐藏的行。
列
列 菜单作用于插入点所在的列。前四个命令只改变显示;后面的命令会更改文件,每个都可一次撤消。
| 命令 | 作用 |
|---|---|
| 选择列 | 在该列的每个字段上建立选择(多个插入点):键入即可同时更改所有字段。 |
| 复制列 | 将该列的值复制到剪贴板,每行一个。 |
| 在屏幕上隐藏列 | 其字段绘制为 …,其他列随之靠拢;文件不会更改。显示所有列 可将其恢复。 |
| 在后面添加列 | 在右侧添加一个空列,标题行中为 新列。 |
| 删除列 | 从每一行中删除该列。 |
| 左移列 · 右移列 | 在每一行中将该列与相邻的列交换。 |
转换
转换 以另一种格式复制整个表格——或仅复制选定的行。被筛选隐藏的行不包含在内。

| 命令 | 作用 |
|---|---|
| 复制为 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 时提示还会显示在行尾。

| 提示 | 何时显示 | 文本 |
|---|---|---|
| 字段数错误 | 某行的字段比标题(没有标题的文件则为第一行)多或少:缺少分隔符,或有本应放在引号中的分隔符。 | 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 会更改我的文件吗?
不会自行更改。颜色、对齐、固定标题、筛选和隐藏的列只绘制在屏幕上。只有当你选择排序、添加、删除或移动列、格式化为对齐文本或紧凑格式时,文件才会更改——每项操作都是撤消中的一步。
我的文件扩展名不同(.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
- 首个版本:列着色、屏幕上的对齐、固定的标题行和第一列、悬停时显示列、带有按文件设置的分隔符和标题行的工具栏、一次撤消即可还原的排序、筛选、列、转换(Markdown、JSON、SQL INSERT、CSV、TSV、对齐、紧凑)、单元格内的链接、状态栏中的列和汇总、“字段数错误”“引号未闭合”和“标题名称重复”提示;仅一次的评分请求。
- 在此之前:0.1 颜色、对齐、固定标题和提示;0.2 工具栏、状态栏汇总、宽单元格、排序、链接;0.3 筛选、列工具和转换。