跳转至

CLI 参考

ExcelFlow 安装后提供 excelflow 命令,也可以使用:

python -m excelflow

命令概览

excelflow [-V]
excelflow template [-o PATH]
excelflow validate -p PATH
excelflow preview -p PATH -t TASK_ID
excelflow run -p PATH -s SOURCE.xlsx [-t TASK_ID] [-f {csv,jsonl,xlsx}] [-o PATH]

上面的命令概览使用短选项;每个短选项都可以替换为下文参数表中的对应长选项,例如 -p 等价于 --plan

不提供子命令或使用未知参数时,参数解析器显示用法并以非零状态退出。

template

创建计划模板。

excelflow template --output extraction_plan.xlsx
参数 必填 默认值 说明
-o, --output extraction_plan.xlsx 模板输出路径;父目录会自动创建。

成功输出:

已生成: extraction_plan.xlsx

如果目标文件已存在,当前实现会直接覆盖,不会交互确认。

validate

读取并校验整个计划文件。

excelflow validate --plan extraction_plan.xlsx
参数 必填 说明
-p, --plan 计划 Excel 路径。

成功输出 校验通过,退出码为 0。失败时每个问题输出为:

错误: <错误内容>

并返回退出码 1。该命令不读取源数据 Excel,因此不能发现源 Sheet 缺失、源列名错误或表达式内部字段不存在等运行时问题。

preview

显示某个任务的 Pandas 执行计划摘要。

excelflow preview --plan extraction_plan.xlsx --task order_report
参数 必填 说明
-p, --plan 计划 Excel 路径。
-t, --task “抽取计划”中的任务ID。

输出包括读取对象、按顺序排列的关联、过滤条件数量和输出字段数量,例如:

Pandas 执行计划: order_report
读取: 订单 -> o, 订单明细 -> i
关联1: LEFT JOIN i ON o.order_id=i.order_id
过滤条件: 1 条
输出字段: 2 个

preview 读取计划并查找任务,但当前不会执行完整计划校验,也不会读取源数据或生成输出文件。

run

执行抽取并写出结果。

excelflow run --plan PATH --source SOURCE.xlsx [--task TASK_ID] [--format {csv,jsonl,xlsx}] [--output PATH]
参数 必填 默认值 说明
-p, --plan 计划 Excel 路径。
-t, --task 要执行的任务ID。省略时执行计划中所有“启用”为“是”的任务(多任务模式)。
-s, --source 包含源数据 Sheet 的 Excel 文件。
-f, --format xlsx csvjsonlxlsx
-o, --output 见说明 单任务:输出文件路径(父目录自动创建);省略时用 <任务ID>.<格式> 写入当前目录。多任务:输出目录,每个任务生成 <目录>/<任务ID>.<格式>;省略时写入当前目录;若该路径指向已存在文件则报错。

示例:

excelflow run -p extraction_plan.xlsx -t order_report -s source.xlsx -f csv -o output/report.csv
excelflow run -p extraction_plan.xlsx -t order_report -s source.xlsx -f jsonl -o output/report.jsonl
excelflow run -p extraction_plan.xlsx -t order_report -s source.xlsx -f xlsx -o output/report.xlsx
# 省略 --format(默认 xlsx)与 --output(默认 order_report.xlsx,写入当前目录)
excelflow run -p extraction_plan.xlsx -t order_report -s source.xlsx
# 多任务:省略 --task,每个启用任务输出 results/<任务ID>.<格式>
excelflow run -p extraction_plan.xlsx -s source.xlsx -f csv --output results
# 多任务,默认写入当前目录
excelflow run -p extraction_plan.xlsx -s source.xlsx

输出格式由 --format 参数决定,不根据 --output 的后缀推断。CSV 使用 UTF-8 BOM 且不写索引;JSONL 每行一个对象、保留非 ASCII 字符并使用 ISO 日期;XLSX 的结果 Sheet 名为 data

执行前会校验整个计划。单任务模式(指定 --task)确认所选任务的“启用”为“是”,否则报错;多任务模式(省略 --task)只执行“启用”为“是”的任务、跳过其余任务,任一任务失败即停止(退出码 1,已写出的文件保留)。成功输出:

# 单任务
抽取完成: 120 行 -> output/report.csv
# 多任务,每个任务一行
抽取完成 [order_report]: 120 行 -> results/order_report.csv

版本信息

使用全局选项查看当前安装的 ExcelFlow 版本:

excelflow --version
excelflow -V

显示版本后命令立即退出,不需要指定子命令。

退出码与错误输出

退出码 含义
0 命令成功。
1 计划校验失败或命令执行过程中发生异常。
2 缺少子命令、缺少必填参数、输出格式不在允许值中或其他 argparse 参数解析错误。

运行异常写入标准错误,格式为:

失败: <错误内容>

计划内容校验失败时,validate 将逐条 错误: 信息写到标准错误;文件无法读取等异常也会由 validate 包装成一条校验错误并写到标准错误。stdout 只用于成功结果和正常预览内容。previewruntemplate 的异常使用上述 失败: 格式写到标准错误。