ARTICLE · 1117657
批量导出 Excel 到 PDF 脚本,整张表老被切
批量导出 Excel 到 PDF 脚本,整张表老被切
批量导出 Excel 到 PDF 脚本,整张表老被切
实验室台账还在 Excel 里,可归档、发客户、应付检查时,交出去的必须是 PDF。手工一份份“另存为”最容易卡在两件事上:列宽超一页的表会被拦腰切开,第二页连个表头都没有;十几份导完,还得按接收方逐份改名登记。
为了解决这个问题,我写了套 Python 脚本。关键一条是页面设置只在内存里生效,绝不落回源文件——台账是受控的原始记录,一行都不该被脚本改写。
脚本先把工作表读成三块:表头、数据、表外说明。合并单元格只把值留在左上角,因为 reportlab 的 SPAN 碰到分页会直接报错。数据区靠第一列判断,第一列一空,明细就结束,后面非空的内容全归入“表外说明”。
排版才是胜负手。Excel 列宽单位是字符数,跟 PDF 的点没关系,必须换算。换完总宽超一页就整体等比缩小,只缩不放。放大只会把整齐的台账拉变形。最后交给 reportlab 分页,表头每页自动重复,不用自己数第几行换页。
导完不复核等于没导。除了数页数、抽批号,最要紧的是算一遍源工作簿的 sha256 指纹。导出前后比对一致,才算证明导出过程没碰过原始记录。
原文批量导出 Excel 到 PDF 脚本,整张表老被切成两页
作者提示: 内容由AI生成
上海,9分钟前,