-
Notifications
You must be signed in to change notification settings - Fork 262
Open
Description
一、现有痛点与优化方向
当前 python-office 的文件转换功能(如 PDF、Office 互转)依赖用户手动指定源格式与目标格式(如office.pdf.doc2pdf()),参数冗余且学习成本高。结合职场高频场景,建议强化 「智能识别 + 极简交互」 逻辑:
核心目标:用户仅需输入「文件 / 文件夹路径」,库自动完成格式判断、转换与保存,全程无额外参数(默认行为)。
二、具体优化方案(新增 Issue 建议)
🔥 Issue 1:智能格式转换(单文件)
场景:用户传入"合同.docx",自动转为同路径的"合同.pdf";传入"报表.xlsx",转为"报表.pdf"。
实现逻辑:
- 扩展名识别:支持
doc/docx/ppt/pptx/xls/xlsx转pdf,以及pdf转图片(根据目标扩展名判断)。 - 路径自动生成:输出路径默认与原文件一致,仅修改扩展名(如无目标扩展名,默认转 PDF)。
- 异常友好提示:不支持的格式(如
.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,保存至原目录。
实现逻辑:
- 递归扫描:默认递归子文件夹,可通过
recursive=False关闭(可选参数)。 - 格式分组处理:按文件类型并行转换(如 Word 用
pywin32,Excel 用openpyxl),提升效率。 - 进度可视化:新增轻量进度条(
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
Labels
No labels