Python操作word常见方法示例【win32com与docx模块】


Posted in Python onJuly 17, 2018

本文实例讲述了Python操作word常见方法。分享给大家供大家参考,具体如下:

这里介绍两种方式:

  • 使用win32com
  • 使用docx

1. 使用win32com扩展包

只对windows平台有效

代码:

# coding=utf-8
import win32com
from win32com.client import Dispatch, DispatchEx
word = Dispatch('Word.Application') # 打开word应用程序
# word = DispatchEx('Word.Application') #启动独立的进程
word.Visible = 0 # 后台运行,不显示
word.DisplayAlerts = 0 # 不警告
path = 'G:/WorkSpace/Python/tmp/test.docx' # word文件路径
doc = word.Documents.Open(FileName=path, Encoding='gbk')
# content = doc.Range(doc.Content.Start, doc.Content.End)
# content = doc.Range()
print '----------------'
print '段落数: ', doc.Paragraphs.count
# 利用下标遍历段落
for i in range(len(doc.Paragraphs)):
  para = doc.Paragraphs[i]
  print para.Range.text
print '-------------------------'
# 直接遍历段落
for para in doc.paragraphs:
  print para.Range.text
  # print para #只能用于文档内容全英文的情况
doc.Close() # 关闭word文档
# word.Quit #关闭word程序

2. 使用docx扩展包

优点:不依赖操作系统,跨平台

安装:

pip install python-docx

参考文档: https://python-docx.readthedocs.io/en/latest/index.html

代码:

import docx
def read_docx(file_name):
  doc = docx.Document(file_name)
  content = '\n'.join([para.text for para in doc.paragraphs])
  return content

创建表格

# coding=utf-8
import docx
doc = docx.Document()
table = doc.add_table(rows=1, cols=3, style='Table Grid') #创建带边框的表格
hdr_cells = table.rows[0].cells # 获取第0行所有所有单元格
hdr_cells[0].text = 'Name'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
# 添加三行数据
data_lines = 3
for i in range(data_lines):
  cells = table.add_row().cells
  cells[0].text = 'Name%s' % i
  cells[1].text = 'Id%s' % i
  cells[2].text = 'Desc%s' % i
rows = 2
cols = 4
table = doc.add_table(rows=rows, cols=cols)
val = 1
for i in range(rows):
  cells = table.rows[i].cells
  for j in range(cols):
    cells[j].text = str(val * 10)
    val += 1
doc.save('tmp.docx')

读取表格

# coding=utf-8
import docx
doc = docx.Document('tmp.docx')
for table in doc.tables: # 遍历所有表格
  print '----table------'
  for row in table.rows: # 遍历表格的所有行
    # row_str = '\t'.join([cell.text for cell in row.cells]) # 一行数据
    # print row_str
    for cell in row.cells:
      print cell.text, '\t',
    print

相关样式参考: https://python-docx.readthedocs.io/en/latest/user/styles-understanding.html

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
实例讲解python函数式编程
Jun 09 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
python实现excel读写数据
Mar 02 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
django中间键重定向实例方法
Nov 10 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
详解tensorflow之过拟合问题实战
Nov 01 Python
django如何自定义manage.py管理命令
Apr 27 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 Python
python神经网络ResNet50模型
May 06 Python
python查看列的唯一值方法
Jul 17 #Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 #Python
python 数字类型和字符串类型的相互转换实例
Jul 17 #Python
python 移除字符串尾部的数字方法
Jul 17 #Python
基于python代码实现简易滤除数字的方法
Jul 17 #Python
Sanic框架Cookies操作示例
Jul 17 #Python
Sanic框架配置操作分析
Jul 17 #Python
You might like
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
asm.js使用示例代码
2013/11/28 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
javascript时间差插件分享
2016/07/18 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python3中的md5加密实例
2018/05/29 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
校园十大歌手策划书
2014/02/01 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年团支部工作总结
2015/04/03 职场文书
公司员工离职感言
2015/08/03 职场文书
公司人事管理制度
2015/08/05 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技