用途:在工作区目录中处理 Excel 工作簿与批量表格,可读取、创建、编辑 .xlsx/.xlsm,以及批量 .csv/.tsv。
主要能力:pandas 适合批量表格读写与分析,但会丢失格式和公式;openpyxl 适合单元格、公式、样式、图表、合并单元格、多工作表和数字格式等对保真度有要求的场景。编辑时 load_workbook 会保留原有样式、公式、合并单元格和图表,只改动触及的部分;不要用 pandas 往返读写以保留格式。
关键限制:openpyxl 只写入公式字符串,不计算公式,缓存值为空或过期,需 Excel/LibreOffice 打开时重算。若交付物只需正确数值,建议在 Python 中算好再写入数字;若需活公式,可写真实公式并引用单元格,若存在 soffice 可用命令重算:command -v soffice >/dev/null && soffice --headless --convert-to xlsx --outdir /tmp out.xlsx >/dev/null 2>&1 && cp /tmp/out.xlsx out.xlsx。切勿保存以 data_only=True 加载的工作簿,否则公式永久丢失。插入/删除行列时 openpyxl 不会自动调整公式引用,需自行修正。
使用方式:通过 exec 运行短 Python 脚本,读取用 pd.read_excel 或 load_workbook(data_only=True),创建用 Workbook,图表用 BarChart/LineChart/PieChart/ScatterChart,CSV 用 pd.read_csv/to_csv。完成后使用工具结果中的 Generated artifacts URL 供用户下载。
适用场景:表格数据清洗、报表生成、带格式与公式的工作簿编辑、图表制作、多工作表管理。
限制:公式缓存值需重算才准确;无 soffice 时需提示用户打开文件后公式才会填充;原始 OOXML 仅在 openpyxl 无法表达的少数情况使用。