38  
查询码: 00000854
Python 调用office自动转换文档格式
作者: 系统管理员1 于 2024年11月15日 发布在分类 / 配置安装 / 系统运维 ,于 2024年11月15日 编辑

实现python代码

实现功能:转换当前目录下所有xml文件(word另存为xml格式的文件)为word文件

背景:通过cbtg模板引擎生成合同文件时需要创作word模板,将word转xml后可以加入cbtg的文本模板引擎中,因为是xml文件,所以生成的word文件也是xml格式不方便分享传播,故通过python实现将xml文件自动转为docx格式的工具配合cbtg使用

1.安装pywin32

pip install pywin32

2.转换代码如下

import win32com.client
import os


def upgrade_word_document(input_path, output_path):
    # 创建 Word 应用程序对象
    word = win32com.client.Dispatch('Word.Application')
    word.Visible = False  # 不显示 Word 窗口

    try:
        # 打开旧格式的 Word 文档
        doc = word.Documents.Open(input_path)

        # 将文档另存为新格式
        doc.SaveAs(output_path, FileFormat=12)  # 12 表示 .docx 格式

    except Exception as e:
        print(f"Error upgrading {input_path} to {output_path}: {e}")

    finally:
        # 关闭文档和 Word 应用程序
        doc.Close()
        word.Quit()


# 示例用法
current_directory = os.getcwd()
# 获取当前目录下的所有文件
all_files = os.listdir(current_directory)
# 过滤出所有的 XML 文件
xml_files = [file for file in all_files if file.endswith('.xml')]
# 转换所有的 XML 文件
for xml_file in xml_files:
    filepath=current_directory+os.path.sep+xml_file.title()
    print(f'{filepath}')
    file_name, file_extension = os.path.splitext(filepath)
    out_fil_epath = file_name+".docx"
    print(f'{out_fil_epath}')
    upgrade_word_document(filepath, out_fil_epath)


打包

打包为windows可执行程序,在有xml的目录执行后将所有xml转换为docx

安装pyinstaller

pip install pyinstaller
执行打包
pyinstaller --onefile my_script.py


资源

下载已经打包好的可执行程序:


  officeXml文件转Docx.zip
下载 详情 




1人参与


 历史版本

备注 修改日期 修改人
内容更新 2024-11-15 12:32:17[当前版本] 系统管理员1
创建版本 2024-11-15 12:26:33 系统管理员1

 附件

附件类型

ZIPZIP

  目录
    wcp知识库系统-京ICP备15024440号-1 -V 5.2.0 -wcp