用途
preview-csv 是一个交互式 CSV 文件查看器技能,用于在浏览器中渲染和预览 CSV 文件,生成带有排序、过滤和统计分析功能的 HTML 可视化页面。当用户希望查看、探索或分析 CSV 数据时可以使用该技能。
主要能力
- 交互式表格,列可排序(点击表头排序,再次点击反向排序,并有视觉指示显示当前排序方向)。
- 实时搜索与过滤:跨所有列进行实时搜索,不区分大小写,输入即时出结果。
- 列统计:自动为每列计算统计信息。数值列显示最小值、最大值、平均值;所有列显示唯一值数量和数据类型。统计信息会随过滤后的数据更新。
- 导出为 JSON:一键导出为 JSON 格式,保留所有数据和结构,直接下载到浏览器。
- 大文件支持:自动分页,支持 10,000 行以上。
- 响应式设计,适配屏幕尺寸。
- 键盘导航,提升可访问性。
使用方式
该技能面向智能体使用。当用户要求预览 CSV 文件时,不要手动构建 HTML,而应使用 Bash 工具执行该技能的 run.sh 脚本:
# 预览文件
./run.sh data.csv
# 管道输入内容
cat data.csv | ./run.sh
脚本会处理所有 HTML 生成,并自动在浏览器中打开结果。不要手动打开文件,以避免重复标签页。
命令行用法:
# 预览 CSV 文件
/preview-csv data.csv
# 管道输入 CSV 数据(临时内容推荐使用)
cat data.csv | /preview-csv
echo "name,age\nAlice,30\nBob,25" | /preview-csv
# 使用自定义背景色
/preview-csv data.csv --background "#1e1e1e"
最佳实践:对于临时或生成的内容,优先使用管道而非创建临时文件,这样可以避免文件系统杂乱,内容会自动清理。
选项:
-o, --output PATH:自定义输出路径。--no-browser:跳过浏览器,仅输出文件路径。
适用场景
当用户想要执行以下操作时使用该技能:
- 查看和探索 CSV 数据文件
- 通过排序和过滤分析数据
- 快速检查列统计信息
- 分享格式化后的数据视图
- 调试或验证 CSV 文件内容
自然语言请求示例:
- “preview this CSV file”
- “show me the data in customers.csv”
- “open the employee data”
- “visualize this CSV”
- “let me see what's in sales.csv”
技术细节
文件要求:
- 文件扩展名:.csv
- 最大大小:10MB(可配置)
- 编码:UTF-8
输出:
该技能生成一个独立的 HTML 文件,路径为:
.preview-skills/csv/{filename}.html
该文件是自包含的,可以:
- 直接在任意浏览器中打开
- 分享给他人(无依赖)
- 归档以供后续查看
浏览器兼容性:
- 现代浏览器(Chrome、Firefox、Safari、Edge)
- 需要启用 JavaScript
- 无外部依赖(所有资源已打包)
限制与故障排查
- CSV 无法正确显示:确保文件是有效的 CSV 格式,检查分隔符是否为逗号,验证 UTF-8 编码。
- 文件过大:超过 10MB 的文件可能加载失败,建议在预览前过滤数据,对超大文件使用分页。
- 缺少列或数据:检查文件末尾是否有空行,验证是否存在表头行,确保每行列数一致。
开发
该技能是独立的,包含所有依赖:
- 共享库打包在 lib/ 中
- 模板打包在 templates/ 中
- 无外部 CDN 要求
修改该技能:
- 编辑 config.sh 进行配置
- 编辑 templates/scripts/csv-renderer.js 修改行为
- 编辑 templates/styles/csv.css 修改样式
- 运行 run.sh 测试更改