泽洋 Excel 清洗大师 FREE
适用范围
处理一个独立的 .xlsx 或 .csv 数据文件。可删除完全空行和严格全空列、可选删除完全重复行、规范缺失值、清理控制字符、重命名重复表头,并输出清洗后的新文件与 Markdown 报告。
不处理多表合并、两表比对、表格拆分、汇总统计或组合任务。
必要安全边界
- 不修改输入文件,不覆盖已有文件。
- 先展示清洗计划;只有收到明确的执行确认后才写入文件。
- 公式、合并单元格、隐藏行列及明显模板化结构需要额外谨慎。实际结构变化存在风险时停止并解释原因。
- 多个非空工作表时,必须使用
--sheet指定目标工作表。 - 成功时只显示结果文件和 Markdown 清洗报告路径。
默认清洗规则
- 删除数据区域中的完全空行。
- 删除每个数据行都为空、且不属于明显布局结构的严格全空列。
- 保留部分有值的列。
- 保留表头;只有开启
--rename-duplicate-headers才重命名重复表头。 - 只在开启
--dedupe后删除逐单元格完全相同的数据行,保留第一次出现的行。 - 只规范通过
--missing-values指定的缺失值标记。 - 默认移除非打印控制字符,并保留换行、制表符和回车。
- 自动识别逗号、制表符、分号和竖线分隔的 CSV;无法安全识别时要求
--delimiter。 - 保留 CSV 引号字段内部的真实换行。
- 结构清洗后尽可能保留仍存在的 Excel 单元格数字格式、百分比格式、日期格式和金额格式。
命令
先仅查看计划:
python scripts/clean_excel.py --input "examples/dirty_table.csv"
确认并执行:
python scripts/clean_excel.py --input "examples/dirty_table.csv" --execute --yes
选择 Excel 工作表:
python scripts/clean_excel.py --input "book.xlsx" --sheet "Data" --execute --yes
指定 CSV 分隔符:
python scripts/clean_excel.py --input "data.csv" --delimiter tab --execute --yes
参数
| 参数 | 作用 |
|---|---|
--input |
必填,输入 .xlsx 或 .csv 文件。 |
--output |
可选,新的结果文件路径;文件类型必须与输入一致。 |
--report |
可选,新的 Markdown 清洗报告路径。 |
--sheet |
可选,目标 Excel 工作表名称。 |
--delimiter |
可选,CSV 分隔符:comma、tab、semicolon、pipe 或对应符号。 |
--execute |
执行写入;省略时只预览计划。 |
--yes |
对本次计划进行明确确认。 |
--dedupe |
删除完全重复的数据行。 |
--missing-values |
以逗号分隔的缺失值标记,例如 N/A,NULL。 |
--missing-value |
--missing-values 的兼容别名。 |
--rename-duplicate-headers |
稳定重命名重复表头。 |
--no-control-cleaning |
不清理非打印控制字符。 |
--keep-empty-columns |
保留严格全空列。 |
--no-empty-row-removal |
保留完全空行。 |
执行流程
- 识别输入格式、编码和工作表。
- 构建并展示清洗计划。
- 未使用
--execute --yes时停止在预览阶段。 - 执行安全的清洗规则并生成新文件。
- 重新打开结果文件进行校验。
- 对输入文件进行 SHA-256 前后比对。
- 生成仅含规则、统计和结构警告的 Markdown 报告。
输出
成功执行后输出:
RESULT_FILE:新生成的清洗结果文件。REPORT_FILE:新生成的 Markdown 清洗报告。- 控制台成功状态信息。
报告不写入完整单元格内容,避免无必要地扩散源数据。
失败时的处理
- 输入为空、格式不受支持或编码无法识别时,报告错误并不创建输出。
- 多工作表但未指定目标时,要求补充
--sheet。 - 检测到高风险公式或模板结构且计划需要实际结构改变时,停止执行。
- 结果文件校验失败或原文件哈希变化时,清理本次新建输出并报告失败。