Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

文件格式转换功能的优化建议 #138

Open
@snowblade2025

Description

一、现有痛点与优化方向

当前 python-office 的文件转换功能(如 PDF、Office 互转)依赖用户手动指定源格式与目标格式(如office.pdf.doc2pdf()),参数冗余且学习成本高。结合职场高频场景,建议强化 「智能识别 + 极简交互」 逻辑:
核心目标:用户仅需输入「文件 / 文件夹路径」,库自动完成格式判断、转换与保存,全程无额外参数(默认行为)。

二、具体优化方案(新增 Issue 建议)

🔥 Issue 1:智能格式转换(单文件)

场景:用户传入"合同.docx",自动转为同路径的"合同.pdf";传入"报表.xlsx",转为"报表.pdf"
实现逻辑:

  1. 扩展名识别:支持doc/docx/ppt/pptx/xls/xlsxpdf,以及pdf转图片(根据目标扩展名判断)。
  2. 路径自动生成:输出路径默认与原文件一致,仅修改扩展名(如无目标扩展名,默认转 PDF)。
  3. 异常友好提示:不支持的格式(如.txt)抛出明确错误,附支持列表;文件不存在时提示检查路径。
    示例代码:

python

# 现有调用(需3参数)
office.pdf.doc2pdf(input_path="文件.docx", output_path="文件.pdf", format="pdf")
# 优化后(仅1参数,默认行为)
office.file.convert("文件.docx") # 自动转同路径PDF
office.file.convert("图表.xlsx", to="png") # 可选目标格式(非必填)

🔥 Issue 2:批量智能转换(文件夹)

场景:用户传入"D:/周报/",自动遍历所有子文件,将 Word/Excel/PPT 转为 PDF,保存至原目录。
实现逻辑:

  1. 递归扫描:默认递归子文件夹,可通过recursive=False关闭(可选参数)。
  2. 格式分组处理:按文件类型并行转换(如 Word 用pywin32,Excel 用openpyxl),提升效率。
  3. 进度可视化:新增轻量进度条(poprogress模块),显示转换进度与结果统计。
    示例代码:
# 一键转换整个文件夹(含子目录)
office.file.batch_convert("D:/周报/") # 自动识别并转换所有支持的文件
# 结果:D:/周报/张三周报.docx → D:/周报/张三周报.pdf(原路径)

🔥 Issue 3:参数极简主义(默认行为强化)

痛点:现有接口需用户记忆参数名(如output_path),不符合「小白友好」定位。
优化:

  • 强制单参数:必传参数仅file_path,其他参数均设默认值(如to="pdf"overwrite=True)。

  • 路径智能推断

    :

    • 输入为文件 → 输出至同目录,同名 + 目标扩展名。
    • 输入为文件夹 → 输出至原文件夹,保持目录结构。
  • 可选参数后置:仅高级用户需要时使用(如office.file.convert("a.docx", to="pdf", overwrite=False))。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /