# gexcel **Repository Path**: shaoninghouse/gexcel ## Basic Information - **Project Name**: gexcel - **Description**: 在命令行中查看、编辑表格 - **Primary Language**: Go - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-01 - **Last Updated**: 2025-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gexcel 📊 [](https://www.google.com/search?q=https://gitee.com/yourusername/gexcel) [](https://www.google.com/search?q=LICENSE) [](https://www.google.com/search?q=https://gitee.com/yourusername/gexcel/stargazers) > **Terminal Excel Viewer & Editor** > > 在不离开终端的情况下,高效处理 Excel 表格数据。 [功能特性](https://www.google.com/search?q=%23%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7) • [安装说明](https://www.google.com/search?q=%23%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E) • [使用指南](https://www.google.com/search?q=%23%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97) • [开发计划](https://www.google.com/search?q=%23%E5%BC%80%E5%8F%91%E8%AE%A1%E5%88%92) • [参与贡献](https://www.google.com/search?q=%23%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE) ----- #### 📖 简介 **gexcel** 是一个功能强大的命令行工具,专为在终端环境中查看和编辑 Excel (`.xlsx`) 表格而设计。它弥补了纯文本工具无法处理复杂电子表格的短板,支持**灵活的行/列数据提取**和**全屏交互式浏览**两种模式,是开发者、运维工程师和数据分析师的终端利器。 #### 🏗 软件架构 gexcel 采用模块化设计,基于 Go 语言 (Golang) 开发,追求高性能与低资源占用: * **命令行解析**:基于 [Cobra](https://github.com/spf13/cobra) 构建清晰、符合 POSIX 标准的命令结构。 * **Excel 核心**:集成 [excelize/v2](https://github.com/qax-os/excelize) 库,稳健处理 XLSX 文件的读写。 * **终端 UI**:利用 [tcell](https://github.com/gdamore/tcell) 构建高性能、跨平台的全屏渲染引擎。 * **交互组件**:结合 `infinite` 库提供流畅的列表选择与导航体验。 #### ✨ 功能特性 ##### 🚀 1. 命令行提取模式 (CLI Mode) 强大的 `get` 命令集成了数据切片与筛选功能,适合管道操作: * ✅ **元数据概览**:快速列出所有工作表(Sheet)名称。 * ✅ **任意范围切片**:支持通过 `Start` 和 `End` 行号精准截取数据段。 * ✅ **列级筛选**:支持按列名或字母索引提取特定列(如 "A,C" 或 "Name,Age")。 * ✅ **灵活格式化**:自定义显示/隐藏表头、行号、列索引,轻松对接 `awk`/`grep`。 ##### 🖥️ 2. 交互式浏览模式 (TUI Mode) 提供类似 Vim/Less 的全屏沉浸式体验: * ✅ **可视化导航**:方向键/快捷键流畅滚动数据。 * ✅ **Sheet 切换**:直观的列表选择界面。 * ✅ **视图调整**:支持动态调整列宽,适应不同数据长度。 * ✅ **快捷跳转**:支持首行/末行快速跳转 (`g`/`G`)。 ##### 📦 3. 广泛兼容性 * 完整支持 `.xlsx` 格式。 * 兼容各类 Excel 版本创建的文件。 * 智能处理复杂格式的单元格数据读取。 ----- #### 🛠 安装说明 ##### 方法一:使用 Go Install (推荐) 如果您已安装 Go 环境 (1.16+),可以直接安装: ```bash go install gitee.com/yourusername/gexcel@latest ``` ##### 方法二:源码编译 ```bash # 1. 克隆仓库 git clone https://gitee.com/yourusername/gexcel.git # 2. 进入目录 cd gexcel # 3. 编译二进制文件 go build -o gexcel cmd/gexcel/main.go # 4. (可选) 移动到系统 PATH mv gexcel /usr/local/bin/ ``` ----- #### 💻 使用指南 ##### 1\. 命令行模式 (CLI) - `get` 命令详解 `get` 是 gexcel 的核心命令,通过组合不同的参数,您可以实现从“查看全表”到“精准切片”的各种需求。 **基本语法:** ```bash gexcel get [file_path] [flags] ``` **🔥 常用场景示例:** **1. 基础概览** ```bash # 仅查看文件包含的工作表列表 gexcel get data.xlsx ``` **2. 模拟 Head / Tail (查看头部或尾部)** ```bash # 查看前 10 行 (模拟 head) gexcel get data.xlsx --end 10 # 查看从第 100 行开始直到文件结束 (模拟 tail) gexcel get data.xlsx --start 100 ``` **3. 数据分页与切片 (Range Slicing)** ```bash # 查看第 20 到 50 行的数据 gexcel get data.xlsx --start 20 --end 50 # 指定查看 "Sales" 工作表的第 5 到 15 行 gexcel get data.xlsx --sheet "Sales" --start 5 --end 15 ``` **4. 列筛选 (Column Filtering)** ```bash # 仅查看 A 列和 C 列的数据 gexcel get data.xlsx --columns "A,C" # 仅查看表头为 "ID" 和 "Price" 的列,且只看前 20 行 gexcel get data.xlsx --columns "ID,Price" --end 20 ``` **5. 纯净输出 (用于管道处理)** ```bash # 获取第 2 到 100 行,不显示表头和行号索引 (适合传给 awk 处理) gexcel get data.xlsx --start 2 --end 100 --no-header --no-idx ``` **📌 参数详解:** | 参数 | 简写 | 描述 | 默认值 | | :--- | :--- | :--- | :--- | | `--sheet` | `-s` | 指定要读取的工作表名称 | 第一个 Sheet | | `--start` | | **(新增)** 指定读取的**开始行号** (从1开始) | 1 | | `--end` | | **(新增)** 指定读取的**结束行号** (包含该行) | -1 (读到最后) | | `--columns` | `-c` | 指定要显示的列 (支持列号 "A,B" 或表头名 "Name,Age") | 所有列 | | `--no-header` | | 输出结果中不包含第一行表头 | false | | `--no-idx` | | 隐藏所有索引 (同时隐藏行号和列标) | false | | `--no-idx-row` | | 仅隐藏行号 (Row Number) | false | | `--no-idx-col` | | 仅隐藏列标 (A, B, C...) | false | > **💡 提示**:如果不指定 `--end`,程序默认读取到表格末尾。配合 `--start` 可以轻松跳过表头或无关的前置说明行。 ----- ##### 2\. 交互模式 (TUI) 启动交互界面,进行全屏浏览: ```shell gexcel -i data.xlsx ``` **快捷键操作表:** | 按键 | 功能描述 | | :--- | :--- | | `↑` / `↓` | 上下移动光标 (Sheet列表/数据行) | | `←` / `→` | 左右移动数据列 | | `PgUp` / `PgDn` | 整页翻页 | | `g` / `G` | 跳转至 首行 / 末行 | | `w` / `s` / `a` / `d` | 数据视图微调滚动 | | `Ctrl+P` / `Ctrl+O` | 增加 / 减小当前列宽 | | `Enter` | 确认选择/进入工作表 | | `t` | 返回工作表选择列表 (Table list) | | `d` | 进入数据详情视图 (Data view) | | `Esc` (x2) | 退出程序 | ----- #### 📅 开发计划 (Roadmap) 我们正在积极开发以下功能,欢迎社区参与共建: - [ ] **数据编辑**:支持 TUI 下直接修改单元格、增删行列及复制粘贴。 - [ ] **高级搜索**:支持关键字高亮、正则搜索及数值范围过滤。 - [ ] **格式导出**:将 `get` 命令筛选后的结果直接导出为 CSV/JSON。 - [ ] **样式渲染**:在终端中还原基本的单元格颜色和文本样式。 ----- #### 🤝 参与贡献 非常欢迎通过 Pull Request 或 Issue 参与到 gexcel 的开发中来! 1. **Fork** 本仓库 2. 新建特性分支 (`git checkout -b Feat_MyFeature`) 3. 提交代码 (`git commit -m 'Add some feature'`) 4. 推送到分支 (`git push origin Feat_MyFeature`) 5. 新建 **Pull Request** #### 📄 开源协议 本项目采用 [MIT License](https://www.google.com/search?q=LICENSE) 开源协议。