首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >100天精通Python丨办公效率篇 —— 12、Python自动化操作office-word(word转pdf、转docx、段落、表格、标题、页面、格式)

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

作者头像
不吃西红柿
发布2023-04-21 21:03:38
发布2023-04-21 21:03:38
2.2K0
举报
文章被收录于专栏:信息技术智库信息技术智库

一、文档转换

1.1 Word 转化为 PDF

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

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

先导入必要的包。

代码语言:javascript
复制
import os
import win32com.client

注意,我要开始转换了。

代码语言:javascript
复制
# 指定要转换的目录和 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 文档:

代码语言:javascript
复制
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 文件为例,下面是示例代码:

代码语言:javascript
复制
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文档

代码语言:javascript
复制
import docx

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

2. 打开已存在的Word文档

代码语言:javascript
复制
import docx

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

3. 添加段落

代码语言:javascript
复制
import docx

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

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

4. 添加表格

代码语言:javascript
复制
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. 添加图片

代码语言:javascript
复制
import docx

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

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

6. 添加标题

代码语言:javascript
复制
import docx

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

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

7. 格式化段落

代码语言:javascript
复制
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. 设置页面方向和大小

代码语言:javascript
复制
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. 保存文档

代码语言:javascript
复制
import docx

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

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

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

10. 关闭文档

代码语言:javascript
复制
import docx

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

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

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

# 关闭文档
document.close()

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、文档转换
    • 1.1 Word 转化为 PDF
    • 1.2 批量合并 Word 文档
    • 1.3 doc格式 & docx格式 互转
  • 二、常用操作
    • 1. 创建Word文档
    • 2. 打开已存在的Word文档
    • 3. 添加段落
    • 4. 添加表格
    • 5. 添加图片
    • 6. 添加标题
    • 7. 格式化段落
    • 8. 设置页面方向和大小
    • 9. 保存文档
    • 10. 关闭文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档