大家好这里是办公智能体广场。最近研究了一下文档格式转换。现在市面上的转换软件不少但功能往往很碎很难找到一个真正「什么都能转」的工具。所以今天想分享一个很简单的方法在本地批量处理数千份文档支持多种格式互转并尽量保持原有版式样式。 支持的转换类型如下一、需求分析格式转换的功能肯定不需要验证 我们主要验证下转换后样式会不会丢弃所以今天的需求就是验证下面5个转换类型Excel转PDFExcel转WordExcel转图片Word转PDFWord转XLSX二、实现方案一小白上手我准备了一批较复杂样式的ExcelWord文档的文件如下打开鲸闲办公智能体广场找到 “批量格式转换”如图注意可断网使用获取 宫中浩气 “老罗软件”。然后将上面所有输入文件输入勾选要转换的格式就行了如下智能体会自动选择输入文件进行转换。Excel转PDF测试效果原始excel转换后的pdf原始Excel转换后的pdfExcel转Word测试效果直接贴上2张转换后的word图Word转PDF测试效果原始word:转成的PDFWord转Excel测试效果直接贴出转后的exel:三、实现方案二Python脚本用 Python 做批量文档格式转换对经常要整理报表、合同、扫描 PDF、图片素材的朋友来说也是个很实用的路子。优势可以一次性处理大量文件适合成百上千份材料批量转换能按文件夹分组处理不同目录可以走不同转换规则支持 Excel、Word、PDF、图片等多种格式互转规则可自由组合转换逻辑可定制后续想加命名规则、输出目录、过滤条件都比较方便免费开源方案多本地运行不依赖商业转换软件支持断网运行文件不出本机更适合处理内部资料劣势需要一定的 Python 基础第一次使用要安装依赖Office 类转换还可能依赖 LibreOffice 等环境复杂版式、合并单元格、浮动图片、扫描 PDF 等场景转换效果可能需要人工检查如果同时配置多种规则脚本路径、输出命名、异常处理需要多花点时间调试下面是一个简单的 Python 脚本示例可以批量处理总目录下的文件并按 excel:pdf、word:pdf 这类规则自动匹配转换。import os import subprocess from pathlib import Path # 总目录可放多个子文件夹 input_root rpath\to\your\files # 输出目录 output_root rpath\to\your\output Path(output_root).mkdir(parentsTrue, exist_okTrue) # 转换规则源类型 - 目标格式 convert_rules { .xlsx: pdf, .xls: pdf, .docx: pdf, .doc: pdf, .pdf: txt, .png: jpg, } # LibreOffice 安装路径按本机实际修改 soffice rC:\Program Files\LibreOffice\program\soffice.exe def convert_office_to_pdf(src: Path, dst_dir: Path): subprocess.run( [soffice, --headless, --convert-to, pdf, str(src), --outdir, str(dst_dir)], checkTrue ) def convert_image(src: Path, dst: Path): from PIL import Image with Image.open(src) as img: img.save(dst) def convert_pdf_to_txt(src: Path, dst: Path): import pdfplumber texts [] with pdfplumber.open(src) as pdf: for page in pdf.pages: texts.append(page.extract_text() or ) dst.write_text(\n.join(texts), encodingutf-8) def process_file(file_path: Path): ext file_path.suffix.lower() target convert_rules.get(ext) if not target: print(f跳过不支持的文件{file_path}) return print(f转换中{file_path}) if ext in [.xlsx, .xls, .docx, .doc] and target pdf: convert_office_to_pdf(file_path, Path(output_root)) elif ext .pdf and target txt: convert_pdf_to_txt(file_path, Path(output_root) / f{file_path.stem}.txt) elif ext .png and target jpg: convert_image(file_path, Path(output_root) / f{file_path.stem}.jpg) else: print(f暂未实现{ext} - {target}) def walk_files(root: Path): for path in root.rglob(*): if path.is_file(): process_file(path) if __name__ __main__: walk_files(Path(input_root)) print(所有文件处理完成)使用方法把待转换文件放进总目录可按子文件夹分类整理修改脚本中的input_root、output_root和convert_rules安装依赖后运行脚本例如pip install pillow pdfplumber转换完成后在输出目录查看生成的 PDF、TXT、JPG 等文件脚本不会修改原始文件只会在输出目录生成新文件适合批量整理报表、合同、扫描件、图片素材等材料。四、总结这次验证下来格式转换本身不难真正要关注的是转完后样式是否还在。Excel 转 PDF、Word 转 PDF 这类日常场景用本文介绍的方式处理就很省心可断网、版式保留也较好若你经常处理大批量材料、或想自定义规则Python 脚本同样可行只是复杂版式仍建议抽查。两种方案都适合本地处理敏感资料——按需选择先批量转、再对关键文件核对一下就是更稳妥的做法。