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