100天精通Python丨办公效率篇 —— 12、Python自动化操作office-word(word转pdf、转docx、段落、表格、标题、页面、格式)

100天精通Python丨办公效率篇 —— 12、Python自动化操作office-word(word转pdf、转docx、段落、表格、标题、页面、格式)_第1张图片

本文收录于 《100天精通Python专栏 - 快速入门到黑科技》专栏,是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造。 基础知识篇以理论知识为主,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框架;黑科技应用篇以实战为主,包括办公效率小工具、爬虫、数据分析、机器学习、计算机视觉、自然语言处理、数据可视化等等,让你会用一段简单的Python程序,自动化解决工作和生活中的问题,甚至成为红客。
———————————————————————————————————
订阅福利原价299,限时1折订阅专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导/学习方法指引),群里大佬可以抱团取暖(大厂/外企内推机会)
订阅福利简历指导、招聘内推、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
专栏地址: 点击《100天精通Python专栏 - 快速入门到黑科技》

100天精通Python丨办公效率篇 —— 12、Python自动化操作office-word(word转pdf、转docx、段落、表格、标题、页面、格式)_第2张图片

文章目录

    • 一、文档转换
      • 1.1 Word 转化为 PDF
      • 1.2 批量合并 Word 文档
      • 1.3 doc格式 & docx格式 互转
    • 二、常用操作
      • 1. 创建Word文档
      • 2. 打开已存在的Word文档
      • 3. 添加段落
      • 4. 添加表格
      • 5. 添加图片
      • 6. 添加标题
      • 7. 格式化段落
      • 8. 设置页面方向和大小
      • 9. 保存文档
      • 10. 关闭文档

一、文档转换

1.1 Word 转化为 PDF

可以使用 Python 的 win32com 模块实现将 Word 文档批量转化为 PDF 格式。首先,需要安装 win32com 模块和 Word 应用程序(仅适用于 Windows 操作系统)。

下面西红柿演示一个示例代码,用于将指定目录下的所有 Word 文档转化为 PDF 格式:

先导入必要的包。

import os
import win32com.client

注意,我要开始转换了。

# 指定要转换的目录和 Word 应用程序
folder_path = r'C:\Users\noootomato\Desktop\love_tomato'
word_app = win32com.client.Dispatch('Word.Application')

# 遍历目录下的所有文件,将 Word 文档转化为 PDF 格式
for file_name in os.listdir(folder_path):
    if file_name.endswith('.docx') or file_name.endswith('.doc'):
        # 打开 Word 文档
        doc_path = os.path.join(folder_path, file_name)
        doc = word_app.Documents.Open(doc_path)
        
        # 将 Word 文档保存为 PDF 格式
        pdf_path = os.path.join(folder_path, os.path.splitext(file_name)[0] + '.pdf')
        doc.SaveAs(pdf_path, FileFormat=17)
        
        # 关闭 Word 文档
        doc.Close()

# 关闭 Word 应用程序
word_app.Quit()

上述代码使用 win32com 模块打开 Word 文档,再将其保存为 PDF 格式。在保存 Word 文档为 PDF 格式时,需要传递 FileFormat=17 参数,其中数字 17 表示 PDF 格式。

运行上述代码后,指定目录中的所有 Word 文档应该会被转化为 PDF 格式,并存储在相应的目录中。

1.2 批量合并 Word 文档

下面,西红柿要为大家介绍一个非常有用的 Python 技巧:批量合并 Word 文档。

首先,让你要导入一个名为 docx2python 的包。这个包是一个基于 Python 3 的 Word 文档解析器,可以帮助我们轻松读取和操作 Word 文档。

安装完 docx2python 后,我们可以使用下面这段代码来合并 Word 文档:

from docx2python import docx2python
from docx import Document

# 合并指定目录中的所有 Word 文档
def merge_word_documents(dir_path, merged_file_name):
    merged_document = Document()
    for file_name in os.listdir(dir_path):
        if file_name.endswith('.docx'):
            file_path = os.path.join(dir_path, file_name)
            document = Document(file_path)
            for element in document.element.body:
                merged_document.element.body.append(element)
    merged_document.save(merged_file_name)

这段代码中,merge_word_documents 函数接受两个参数,分别是要合并的 Word 文档所在文件夹的路径和合并后要生成的文件名。该函数会遍历指定目录中的所有 Word 文档,并将它们逐一合并成一个新的 Word 文档。

使用这个技巧再也不用一个一个手动合并 Word 文档了,快试试吧,西红柿们!

1.3 doc格式 & docx格式 互转

西红柿继续为大家介绍如何使用 Python 实现 Word 文档(支持 doc 和 docx 两种格式)的批量互转。

Python 中有一个名为 python-docx 的模块,它是一个用于读取、查询和修改 Microsoft Word(docx 文件)的 Python 库。我们还可以使用 python-docx2txt 模块来将 Word 文件转换为文本文件,再通过 python-docx 将其转换为目标类型的 Word 文件。

以将所有 doc 文件转换为 docx 文件为例,下面是示例代码:

import os
import comtypes.client
from docx import Document
from docx2txt import docx2txt

# 将 doc 文件转换为 docx 文件
def convert_doc_to_docx(doc_file_path):
    # 首先将 doc 转换为 txt 文件
    txt_file_path = os.path.splitext(doc_file_path

二、常用操作

1. 创建Word文档

import docx

# 创建Word文档
document = docx.Document()

2. 打开已存在的Word文档

import docx

# 打开已存在的Word文档
document = docx.Document('example.docx')

3. 添加段落

import docx

# 创建Word文档
document = docx.Document()

# 往文档中添加段落
paragraph = document.add_paragraph('创建我的第一个段落。')

4. 添加表格

import docx

# 创建Word文档
document = docx.Document()

# 创建表格,3行4列
table = document.add_table(rows=3, cols=4)

# 遍历表格并填充内容
for i in range(3):
    cells = table.rows[i].cells
    for j in range(4):
        cells[j].text = '第{}行,第{}列'.format(i+1, j+1)

5. 添加图片

import docx

# 创建Word文档
document = docx.Document()

# 添加图片
document.add_picture('example.jpg')

6. 添加标题

import docx

# 创建Word文档
document = docx.Document()

# 添加标题
document.add_heading('标题1', level=1)

7. 格式化段落

import docx

# 创建Word文档
document = docx.Document()

# 往文档中添加段落
paragraph = document.add_paragraph('创建我的第一个段落。')

# 格式化段落
paragraph.add_run('这是加粗的文字。').bold = True
paragraph.add_run('这是斜体字。').italic = True
paragraph.add_run('这是下划线文字。').underline = True
paragraph.add_run('这是红色文字。').font.color.rgb = docx.shared.RGBColor(255, 0, 0)

8. 设置页面方向和大小

import docx

# 创建Word文档
document = docx.Document()

# 设置页面方向
document.sections[0].orientation = docx.enum.section.WD_ORIENT.LANDSCAPE

# 设置页面大小
document.sections[0].page_width = docx.shared.Inches(11)
document.sections[0].page_height = docx.shared.Inches(8.5)

9. 保存文档

import docx

# 创建Word文档
document = docx.Document()

# 往文档中添加段落
paragraph = document.add_paragraph('创建我的第一个段落。')

# 保存文档
document.save('example.docx')

10. 关闭文档

import docx

# 创建Word文档
document = docx.Document()

# 往文档中添加段落
paragraph = document.add_paragraph('创建我的第一个段落。')

# 保存文档
document.save('example.docx')

# 关闭文档
document.close()

如果文章有用,请在评论区大声鼓励我:人生苦短,有你便甜!

你可能感兴趣的:(Python,快速入门,python,word,办公自动化,黑科技专栏)