实现功能:转换当前目录下所有xml文件(word另存为xml格式的文件)为word文件
背景:通过cbtg模板引擎生成合同文件时需要创作word模板,将word转xml后可以加入cbtg的文本模板引擎中,因为是xml文件,所以生成的word文件也是xml格式不方便分享传播,故通过python实现将xml文件自动转为docx格式的工具配合cbtg使用
pip install pywin32
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
下载已经打包好的可执行程序: