• Python进阶:关于 Word 基本操作


      1. 概述

      Word 是一个十分常用的文字处理工具,通常我们都是手动来操作它,本节我们来看一下如何通过 Python 来操作。

      Python 提供了 python-docx 库,该库就是为 Word 文档量身定制的,安装使用 pip install python-docx 命令即可。

      2. 写入

      首先,我们使用 Python 来创建一个 Word 文档并向其中写入一些内容。

      2.1 标题

      我们先来创建 Word 文档并向其中添加标题,完整实现代码如下所示:

      from docx import Document

      # 创建文档

      document = Document()

      # 标题

      document.add_heading('标题0', 0)

      document.add_heading('标题1', 1)

      document.add_heading('标题2', 2)

      # 保存

      document.save('test.docx')

      看一下效果:

      

      2.2 段落

      我们接着向 Word 文档中添加段落内容,完整实现代码如下所示:

      from docx import Document

      # 创建文档

      document = Document()

      # 标题

      document.add_heading('标题0', 0)

      document.add_heading('标题1', 1)

      # 段落

      document.add_paragraph('你们平时Word文档用的多吗?')

      # 列表

      document.add_paragraph('A:我们用的多', style='List Bullet')

      document.add_paragraph('B:我们用的少', style='List Bullet')

      document.add_paragraph('C:我们用的不多不少', style='List Bullet')

      document.add_heading('标题2', 2)

      # 段落

      document.add_paragraph('我平时基本都是手动操作Word文档,现在打算利用Python来操作它,'

      '你们平时是手动操作Word文档?如果是的话,一起来了解下如何通过'

      'Python来操作吧!')

      # 保存

      document.save('test.docx')

      看一下效果:

      

      2.3 表格

      我们接着向文档中插入表格,完整实现代码如下所示:

      from docx import Document

      # 创建文档

      document = Document()

      # 标题

      document.add_heading('标题0', 0)

      document.add_heading('标题1', 1)

      # 段落

      document.add_paragraph('你们平时Word文档用的多吗?')

      # 列表

      document.add_paragraph('A:我们用的多', style='List Bullet')

      document.add_paragraph('B:我们用的少', style='List Bullet')

      document.add_paragraph('C:我们用的不多不少', style='List Bullet')

      document.add_heading('标题2', 2)

      # 段落

      document.add_paragraph('我平时基本都是手动操作Word文档,现在打算利用Python来操作它,'

      '你们平时是手动操作Word文档?如果是的话,一起来了解下如何通过'

      'Python来操作吧!')

      # 表格

      table = document.add_table(rows=3, cols=2, style='Table Grid')

      # 表头

      hc = table.rows[0].cells

      hc[0].text = '姓名'

      hc[1].text = '年龄'

      # 表体

      bc1 = table.rows[1].cells

      bc1[0].text = '张三'

      bc1[1].text = '22'

      bc2 = table.rows[2].cells

      bc2[0].text = '李四'

      bc2[1].text = '33'

      # 保存

      document.save('test.docx')

      看一下效果:

      

      2.4 图片

      我们接着向文档中插入图片,完整实现代码如下所示:

      from docx import Document

      from docx.shared import Inches

      # 创建文档

      document = Document()

      # 标题

      document.add_heading('标题0', 0)

      document.add_heading('标题1', 1)

      # 段落

      document.add_paragraph('你们平时Word文档用的多吗?')

      # 列表

      document.add_paragraph('A:我们用的多', style='List Bullet')

      document.add_paragraph('B:我们用的少', style='List Bullet')

      document.add_paragraph('C:我们用的不多不少', style='List Bullet')

      document.add_heading('标题2', 2)

      # 段落

      document.add_paragraph('我平时基本都是手动操作Word文档,现在打算利用Python来操作它,'

      '你们平时是手动操作Word文档?如果是的话,一起来了解下如何通过'

      'Python来操作吧!')

      # 表格

      table = document.add_table(rows=3, cols=2, style='Table Grid')

      # 表头

      hc = table.rows[0].cells

      hc[0].text = '姓名'

      hc[1].text = '年龄'

      # 表体

      bc1 = table.rows[1].cells

      bc1[0].text = '张三'

      bc1[1].text = '22'

      bc2 = table.rows[2].cells

      bc2[0].text = '李四'

      bc2[1].text = '33'

      # 分页

      # document.add_page_break()

      # 图片

      document.add_picture('pic.jpg', width=Inches(1))

      # 保存

      document.save('test.docx')

      看一下效果:

      2.5 样式 郑州人流手术多少钱 http://mobile.chnk120.com/

      我们再设置一下基本样式,比如:标题居中、字体加粗、首行缩进等,完整实现代码如下所示:

      from docx import Document

      from docx.shared import Inches

      from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

      from docx.shared import Cm, Pt

      # 创建文档

      document = Document()

      style = document.styles['Normal']

      # 标题

      t0 = document.add_heading('标题0', 0)

      # 居中

      t0.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

      document.add_heading('标题1', 1)

      # 首行缩进两个字符

      paragraph_format = style.paragraph_format

      paragraph_format.first_line_indent = Cm(0.74)

      # 段落

      p1 = document.add_paragraph('你们平时')

      # 字体加粗

      p1.add_run('Word文档').bold = True

      # 斜体

      p1.add_run('用的多吗?').italic = True

      # 列表

      document.add_paragraph('A:我们用的多', style='List Bullet')

      document.add_paragraph('B:我们用的少', style='List Bullet')

      document.add_paragraph('C:我们用的不多不少', style='List Bullet')

      document.add_heading('标题2', 2)

      # 段落

      p2 = document.add_paragraph('我平时基本都是手动操作Word文档,现在打算利用Python来操作它,'

      '你们平时是手动操作Word文档?如果是的话,')

      run = p2.add_run('一起来了解下如何通过Python来操作吧!')

      # 设置字体大小

      run.font.size = Pt(12)

      # 表格

      table = document.add_table(rows=3, cols=2, style='Table Grid')

      # 表头

      hc = table.rows[0].cells

      hc[0].text = '姓名'

      hc[1].text = '年龄'

      # 表体

      bc1 = table.rows[1].cells

      bc1[0].text = '张三'

      bc1[1].text = '22'

      bc2 = table.rows[2].cells

      bc2[0].text = '李四'

      bc2[1].text = '33'

      # 分页

      # document.add_page_break()

      # 图片

      document.add_picture('pic.jpg', width=Inches(1))

      # 保存

      document.save('test.docx')

      看一下效果:

      3. 读取

      我们再来读取一下之前 Word 文档中写入的内容,完整代码实现如下所示:

      from docx import Document

      # 打开文档

      document = Document('test.docx')

      # 读取标题、段落、列表内容

      ps = [ paragraph.text for paragraph in document.paragraphs]

      for p in ps:

      print(p)

      # 读取表格内容

      ts = [table for table in document.tables]

      for t in ts:

      for row in t.rows:

      for cell in row.cells:

      print(cell.text, end=' ')

      print() 

  • 相关阅读:
    .NET 应用架构指导 V2 [1]
    MSSQL优化之————探索MSSQL执行计划
    删除代码中所有的空行
    微软企业库5.0学习笔记(一)企业库是什么?
    C# MP3操作类
    Microsoft Enterprise Library 5.0系列学习笔记【1】
    基于Asp.net的CMS系统We7架设实验(环境WIN7,SQL2005,.NET3.5)(初学者参考贴) 【转】
    C#中用ILMerge将所有引用的DLL和exe文件打成一个exe文件,有图解
    “Singleton”模式
    阅读技术类图书的思考
  • 原文地址:https://www.cnblogs.com/djw12333/p/12425555.html
Copyright © 2020-2023  润新知