Sheets:用 Go 构建的开源终端电子表格工具
Sheets 是一个跨平台的 Go 项目,用于直接在终端中处理电子表格。开发者 Maas Lalani 在 GitHub 上以 MIT 许可证发布了源代码。该工具针对偏好 CLI 解决方案而非图形界面的开发者。提供 Windows、macOS 和 Linux 的预构建二进制文件,使其适用于各种开发环境。
该项目解决了在纯文本环境中处理表格数据的问题,能够无缝集成到 shell 脚本和自动化工作流中。用户可以进行编辑、过滤和计算,而无需启动浏览器或桌面应用程序。
主要特性
Sheets 提供了类似于传统电子表格应用程序的功能,但针对终端进行了优化:
- 单元格编辑:使用键盘快捷键导航表格,输入和修改值。
- 公式和计算:支持基本数学运算和函数。
- 导入/导出:处理 CSV、TSV 和其他文本格式。
- 过滤和排序:快速搜索和数据组织。
- 可视化:颜色编码和格式化,提升终端中的可读性。
界面采用全屏 TUI(文本用户界面),使用 tview 库或类似 Go 库构建。这使得处理大型表格时高效且不牺牲性能。
安装和使用
要开始使用,从 GitHub releases 获取预构建二进制文件,或从源代码构建:
go install github.com/mjl-/sheets@latest
安装后,使用以下命令启动:
sheets file.csv
项目需要 Go 1.21+ 进行编译。依赖项极少,便于在容器或 CI/CD 管道中部署。
开发中的应用
Sheets 完美融入 DevOps 工作流:
- 实时日志处理。
- 分析监控工具的指标(Prometheus、Grafana 导出)。
- 通过脚本生成报告。
- 数据库数据的 ETL 过程(SQLite、PostgreSQL 通过 csvdump)。
示例:将 JSON 日志解析成表格进行错误分析。
# Example script
sheets -i logs.json -o analysis.tsv | sheets --sort column2
这对于在无头环境或无 GUI 服务器上工作的资深开发者特别有用。
与替代方案的比较
| 工具 | 平台 | 许可证 | TUI | 公式 |
|-----------|------------------|---------|-----|----------|
| Sheets | Win/Mac/Linux | MIT | 是 | 是 |
| visidata | *nix | GPL | 是 | 部分支持 |
| csvkit | *nix | MIT | 否 | 否 |
Sheets 以其完整的跨平台支持和基于终端的公式功能脱颖而出。
主要亮点
- 开源 Go 代码库:易于扩展和自定义以满足特定需求。
- 跨平台:所有主要操作系统的二进制文件,无依赖。
- TUI 界面:终端中完整的导航和编辑功能。
- MIT 许可证:可在商业项目中免费使用。
- 极简设计:注重性能,无多余 UI 元素。
— Editorial Team
暂无评论。