在终端中直接操作 Excel 文件——无需安装 Microsoft Excel!

xleak 将 Excel 电子表格带到您的命令行,提供精美的渲染、强大的导出功能以及功能丰富的交互式 TUI。

功能特性

核心功能

  • 美观的终端渲染 - 支持带格式的表格展示
  • 交互式终端界面 - 通过ratatui实现全键盘导航
  • 智能数据类型处理 - 数字右对齐/文本左对齐/布尔值居中
  • 多工作表支持 - 使用Tab/Shift+Tab无缝切换工作表
  • Excel表格支持 - 列出并提取命名表格(仅.xlsx格式)
  • 多格式导出 - 支持CSV/JSON/纯文本导出
  • 极速解析 - 基于Rust最快的Excel解析库calamine
  • 多文件格式支持 - 兼容.xlsx/.xls/.xlsm/.xlsb/.ods格式

交互式终端功能

  • 全文搜索 - 使用/全局搜索,n/N导航结果
  • 剪贴板支持 - 复制单元格(c)或整行(C)内容
  • 公式显示 - 按回车键查看单元格公式详情
  • 跳转行列 - Ctrl+G快速定位任意单元格(如A100/500/10,5
  • 大文件优化 - 针对1000+行文件实现懒加载
  • 进度指示器 - 长时间操作实时反馈
  • 单元格高亮 - 当前行/列/单元格清晰标记

安装指南

包管理器

macOS / Linux (Homebrew):

bash 复制代码
brew install bgreenwell/tap/xleak

Windows (Scoop):

powershell 复制代码
scoop bucket add bgreenwell https://github.com/bgreenwell/scoop-bucket
scoop install xleak

Windows (WinGet): (即将推出 - 待初始PR合并)

powershell 复制代码
winget install bgreenwell.xleak

Debian/Ubuntu

``xleak 已正式打包为 Debian 的 [rust-xleak`](https://tracker.debian.org/pkg/rust-xleak),并在 Forky 或更高版本中提供:

bash 复制代码
sudo apt install xleak

Arch Linux (AUR):

bash 复制代码
# Using yay
yay -S xleak-bin

# Or using paru
paru -S xleak-bin

NetBSD:

bash 复制代码
pkgin install xleak

Cargo (所有平台):

bash 复制代码
cargo install xleak

Nix:

bash 复制代码
# Run directly
nix run github:bgreenwell/xleak -- file.xlsx

# Install with flakes
nix profile install github:bgreenwell/xleak

快速安装脚本

macOS / Linux:

bash 复制代码
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/bgreenwell/xleak/releases/latest/download/xleak-installer.sh | sh

Windows (PowerShell):

powershell 复制代码
irm https://github.com/bgreenwell/xleak/releases/latest/download/xleak-installer.ps1 | iex

预编译二进制文件

最新版本下载各平台专用二进制文件:

  • macOS:通用二进制文件(Apple Silicon + Intel 双架构)
  • Linux:x86_64 架构(支持 glibc 和 musl 两种C库)
  • Windows :x86_64 位 MSI 安装包或独立版 .exe 程序

从源码构建

bash 复制代码
git clone https://github.com/bgreenwell/xleak.git
cd xleak
cargo install --path .

要求: Rust 1.70 或更高版本

使用方法

交互式 TUI 模式(推荐)

bash 复制代码
# 启动交互式查看器
xleak quarterly-report.xlsx -i

# 从指定工作表开始查看
xleak report.xlsx --sheet "第三季度结果" -i

# 默认显示公式
xleak data.xlsx -i --formulas

# 为宽文件启用水平滚动(自动调整列宽)
xleak wide-data.xlsx -i -H

文本用户界面键盘快捷键:

  • ↑ ↓ ← → - 导航单元格

  • Enter - 查看单元格详情(含公式)

  • / - 在所有单元格中搜索

  • n / N - 跳转到下一个/上一个搜索结果

  • Ctrl+G - 跳转到指定行/单元格(如 100, A50, 10,5

  • c - 复制当前单元格到剪贴板

  • C - 复制整行到剪贴板

  • Tab / Shift+Tab - 切换工作表

  • ? - 显示帮助

  • q - 退出

    非交互模式

    查看电子表格

    bash 复制代码
    xleak quarterly-report.xlsx
查看特定工作表
bash 复制代码
# 按名称
xleak report.xlsx --sheet "Q3 Results"

# 按索引(从1开始)
xleak report.xlsx --sheet 2
限制显示行数
bash 复制代码
# 仅显示前20行
xleak large-file.xlsx -n 20

# 显示所有行
xleak file.xlsx -n 0
导出数据
bash 复制代码
# 导出为CSV
xleak data.xlsx --export csv > output.csv

# 导出为JSON
xleak data.xlsx --export json > output.json

# 导出为纯文本(制表符分隔)
xleak data.xlsx --export text > output.txt
处理Excel表格(仅.xlsx文件)
bash 复制代码
# 列出工作簿中的所有表格
xleak workbook.xlsx --list-tables

# 提取特定表格为JSON(默认格式)
xleak workbook.xlsx --table "Sales"

# 提取表格为CSV
xleak workbook.xlsx --table "Sales" --export csv > sales.csv

# 提取表格为纯文本
xleak workbook.xlsx --table "Employees" --export text
组合选项
bash 复制代码
# 导出特定工作表为CSV
xleak workbook.xlsx --sheet "Sales" --export csv > sales.csv

使用示例

bash 复制代码
# 启动交互式查看器
xleak quarterly-report.xlsx -i

# 非交互模式快速预览
xleak quarterly-report.xlsx

# 查看特定工作表并限制行数
xleak financial-data.xlsx --sheet "Summary" -n 10

# 显示公式的交互模式
xleak data.xlsx -i --formulas

# 导出工作表中的所有数据
xleak survey-results.xlsx --sheet "Responses" --export csv -n 0

配置

xleak支持通过TOML配置文件设置默认主题和快捷键等持久化选项。

配置文件位置

默认路径: ~/.config/xleak/config.toml(或$XDG_CONFIG_HOME/xleak/config.toml

平台备用路径:

  • macOS: ~/Library/Application Support/xleak/config.toml
  • Linux: ~/.config/xleak/config.toml(与XDG相同)
  • Windows: %APPDATA%\xleak\config.toml

自定义路径: 使用--config参数指定:

bash 复制代码
xleak --config /path/to/config.toml file.xlsx -i

快速开始

  1. 复制示例配置:

    bash 复制代码
    mkdir -p ~/.config/xleak
    cp config.toml.example ~/.config/xleak/config.toml
  2. 或创建最小配置:

    bash 复制代码
    mkdir -p ~/.config/xleak
    cat > ~/.config/xleak/config.toml << 'EOF'
    [theme]
    default = "Dracula"
    
    [ui]
    max_rows = 50
    column_width = 30
    
    [keybindings]
    profile = "vim"
    EOF
  3. 测试配置:

    bash 复制代码
    xleak file.xlsx -i

配置选项

主题设置
toml 复制代码
[theme]
# 启动时使用的默认主题
default = "Dracula"

可用主题:

  • "Default" - 简洁的浅色主题
  • "Dracula" - 流行的紫色系深色主题
  • "Solarized Dark" - 适合机器和人类的精确配色
  • "Solarized Light" - Solarized的浅色变体
  • "GitHub Dark" - GitHub深色配色方案
  • "Nord" - 北极蓝调色板

交互模式下按t键可实时切换主题。

界面设置
toml 复制代码
[ui]
# 非交互模式默认显示的最大行数(0表示全部)
max_rows = 50

# 默认列宽(字符数)
column_width = 30

注意:

  • max_rows仅影响非交互模式(xleak file.xlsx
  • 交互式TUI模式(-i)始终显示所有行,大文件采用懒加载
  • column_width适用于两种模式,可通过-w参数覆盖
快捷键

支持两种预设方案和自定义快捷键:

toml 复制代码
[keybindings]
# 方案:"default"或"vim"
profile = "default"

# 可选:覆盖单个快捷键
[keybindings.custom]
quit = "x"
search = "?"
copy_cell = "y"

快捷键方案

默认方案

标准终端应用快捷键:

操作 按键 说明
导航
上下左右移动 单元格导航
翻页 PgUp PgDn 按页滚动
跳转首尾行 Ctrl+Home Ctrl+End 跳转到第一行/最后一行
跳转行首尾 Home End 跳转到第一列/最后一列
操作
查看单元格详情 Enter 显示公式和完整值
跳转到单元格 Ctrl+G 跳转到指定行/列
搜索 / 全文搜索
下一个/上一个匹配项 n N 导航搜索结果
复制单元格 c 复制到剪贴板
复制整行 C (Shift+c) 复制整行内容
工作表
切换工作表 Tab Shift+Tab 工作表切换
通用
切换主题 t 循环切换主题
显示帮助 ? 显示帮助界面
退出 q 退出程序
VIM 配置

高效键盘导航的VIM风格快捷键绑定:

操作 快捷键 默认键 说明
VIM导航
左/下/上/右移动 h j k l ← ↓ ↑ → VIM风格移动
向上/下翻页 Ctrl+u Ctrl+d PgUp PgDn 半页滚动
跳至顶部 gg Ctrl+Home 跳至首行
跳至底部 G (Shift+g) Ctrl+End 跳至末行
跳至行首/行尾 0 $ Home End 首列/末列
VIM操作
复制单元格 y c 复制单元格(yank)
复制整行 Y (Shift+y) C 复制整行(yank)
标准操作
退出 q q 与默认相同
搜索 / / 与默认相同
下一个/上一个匹配项 n N n N 与默认相同
其他所有按键 与默认配置相同

启用VIM模式:

toml 复制代码
[keybindings]
profile = "vim"

自定义快捷键

覆盖特定按键同时保留配置默认值:

toml 复制代码
[keybindings]
profile = "default"

[keybindings.custom]
# 使用'x'代替'q'退出
quit = "x"

# 使用'?'代替'/'搜索
search = "?"

# 使用'T'(Shift+t)切换主题
theme_toggle = "T"

# 使用Ctrl+J跳转到单元格
jump = "Ctrl+j"

所有可自定义操作:

操作 默认键 VIM键 说明
quit q q 退出应用
help ? ? 显示帮助
theme_toggle t t 切换主题
search / / 搜索单元格
next_match n n 下一个搜索结果
prev_match N N 上一个结果
copy_cell c y 复制单元格
copy_row C Y 复制整行
jump Ctrl+g Ctrl+g 跳转到单元格
show_cell_detail Enter Enter 显示详情
next_sheet Tab Tab 下一个工作表
prev_sheet Shift+Tab Shift+Tab 上一个工作表
up Up k 向上移动
down Down j 向下移动
left Left h 向左移动
right Right l 向右移动
page_up PageUp Ctrl+u 向上翻页
page_down PageDown Ctrl+d 向下翻页
jump_to_top Ctrl+Home g 跳至首行
jump_to_bottom Ctrl+End G 跳至末行
jump_to_row_start Home 0 跳至行首
jump_to_row_end End $ 跳至行尾

键位格式:

  • 单键:"q", "/", "Enter"
  • 组合键:"Ctrl+g", "Shift+Tab", "Alt+s"
  • 特殊键:"Enter", "Esc", "Tab", "Home", "End", "PageUp", "PageDown", "Up", "Down", "Left", "Right"

配置示例

极简配置(仅主题):

toml 复制代码
[theme]
default = "Nord"

VIM用户配置:

toml 复制代码
[theme]
default = "Dracula"

[keybindings]
profile = "vim"

自定义工作流:

toml 复制代码
[theme]
default = "GitHub Dark"

[ui]
max_rows = 100
column_width = 40

[keybindings]
profile = "default"

[keybindings.custom]
quit = "x"
search = "s"
copy_cell = "Ctrl+c"
copy_row = "Ctrl+Shift+c"

完整参考: 所有配置选项详见带详细注释的 config.toml.example 文件。

性能表现

xleak 针对大小文件均进行了优化:

  • 小文件(< 1000行):即时加载,完全预载入
  • 大文件 (≥ 1000行):自动延迟加载与行缓存
    • 内存占用:约400KB(处理10,000行文件时)
    • 按需仅加载可视区域行数据
    • 长时间操作显示进度指示器

竞品对比

工具 格式支持 速度 原生终端支持 交互性 搜索功能 公式支持
xleak ✅ xlsx/xls/ods ⚡ 极快 ✅ 是 ✅ 完整TUI ✅ 支持 ✅ 支持
Excel ✅ xlsx ❌ 启动缓慢 ❌ 仅图形界面 ✅ 支持 ✅ 支持 ✅ 支持
pandas ✅ 多种格式 ❌ 较慢 ❌ 需Python ❌ 不支持 ❌ 不支持 ❌ 不支持
csvlook ❌ 仅CSV ✅ 快速 ✅ 支持 ❌ 不支持 ❌ 不支持 ❌ 不支持

相关项目

想在终端查看Word文档?试试 doxx ------ 支持 .docx 文件的终端查看器,提供类似的TUI功能。

技术栈

  • Rust - 保障性能与可靠性
  • calamine - 最快的Excel/ODS解析器
  • ratatui - 终端用户界面框架
  • prettytable-rs - 精美的终端表格渲染
  • clap - 优雅的命令行参数解析
  • arboard - 跨平台剪贴板支

故障排除

"文件未找到"

  • 确保文件路径正确
  • 文件名包含空格时使用引号:xleak "我的报告.xlsx"

"未找到工作表"

  • Excel 文件可能已损坏
  • 尝试先在 Excel/LibreOffice 中打开以验证

"未找到工作表 'X'"

  • 运行 xleak 文件.xlsx(不带 --sheet 参数)查看所有可用工作表
  • 工作表名称区分大小写

许可证

MIT 许可证 --- 详情请参阅 文件。

鸣谢


为终端开发者而生 🚀