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 提取文件的小程序
Jul 29 Python
python 排列组合之itertools
Mar 20 Python
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 Python
Python类装饰器实现方法详解
Dec 21 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
解析Python3中的Import
Oct 13 Python
python实现的读取网页并分词功能示例
Oct 29 Python
windows中安装Python3.8.0的实现方法
Nov 19 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
Python pandas如何向excel添加数据
May 22 Python
python cv2.resize函数high和width注意事项说明
Jul 05 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
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
python判断windows系统是32位还是64位的方法
2015/05/11 Python
详解Python中dict与set的使用
2015/08/10 Python
深入解析Python中的urllib2模块
2015/11/13 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
高级护理专业大学生求职信
2013/10/24 职场文书
学校采购员岗位职责
2014/01/02 职场文书
青年创业培训欢迎词
2014/01/10 职场文书
党支部承诺书范文
2014/03/28 职场文书
购房意向书
2014/04/01 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
超市周年庆活动方案
2014/08/16 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
答谢词范文
2015/01/05 职场文书
政审证明范文
2015/06/19 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript