批量格式转换工具实测:多格式互转 + Excel/Word 转 PDF 保留版式,本地断网运行

大家好,这里是办公智能体广场。最近研究了一下文档格式转换。现在市面上的转换软件不少,但功能往往很碎,很难找到一个真正「什么都能转」的工具。所以今天想分享一个很简单的方法:

在本地批量处理数千份文档,支持多种格式互转,并尽量保持原有版式,样式。 支持的转换类型如下:

一、需求分析

格式转换的功能肯定不需要验证, 我们主要验证下转换后样式会不会丢弃,所以今天的需求就是验证下面5个转换类型:

  • Excel转PDF
  • Excel转Word
  • Excel转图片
  • Word转PDF
  • Word转XLSX

二、实现方案一:小白上手

我准备了一批较复杂样式的Excel,Word文档的文件如下:

打开鲸闲办公智能体广场,找到 "批量格式转换",如图:

注意,可断网使用!!!

获取: 宫中&浩气: "老罗软件"。 然后将上面所有输入文件输入,勾选要转换的格式就行了,如下:

智能体会自动选择输入文件进行转换。

Excel转PDF测试效果

原始excel:

转换后的pdf:

原始Excel

转换后的pdf

Excel转Word测试效果

直接贴上2张转换后的word图:

Word转PDF测试效果

原始word:

转成的PDF:

Word转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 = r"path\to\your\files"

# 输出目录
output_root = r"path\to\your\output"
Path(output_root).mkdir(parents=True, exist_ok=True)

# 转换规则:源类型 -> 目标格式
convert_rules = {
    ".xlsx": "pdf",
    ".xls": "pdf",
    ".docx": "pdf",
    ".doc": "pdf",
    ".pdf": "txt",
    ".png": "jpg",
}

# LibreOffice 安装路径,按本机实际修改
soffice = r"C:\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)],
        check=True
    )


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), encoding="utf-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("所有文件处理完成!")

使用方法:

  1. 把待转换文件放进总目录,可按子文件夹分类整理
  2. 修改脚本中的 input_rootoutput_rootconvert_rules
  3. 安装依赖后运行脚本,例如:pip install pillow pdfplumber
  1. 转换完成后,在输出目录查看生成的 PDF、TXT、JPG 等文件

脚本不会修改原始文件,只会在输出目录生成新文件,适合批量整理报表、合同、扫描件、图片素材等材料。

四、总结

这次验证下来,格式转换本身不难,真正要关注的是转完后样式是否还在。Excel 转 PDF、Word 转 PDF 这类日常场景,用本文介绍的方式处理就很省心,可断网、版式保留也较好;若你经常处理大批量材料、或想自定义规则,Python 脚本同样可行,只是复杂版式仍建议抽查。两种方案都适合本地处理敏感资料------按需选择,先批量转、再对关键文件核对一下,就是更稳妥的做法。