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中关于时间和日期函数的常用计算总结(time和datatime)
Mar 08 Python
python求众数问题实例
Sep 26 Python
python求列表交集的方法汇总
Nov 10 Python
在Django的视图中使用数据库查询的方法
Jul 16 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
Python用for循环实现九九乘法表
May 31 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
python递归下载文件夹下所有文件
Aug 31 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 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
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
JavaScript 函数调用规则
2009/09/14 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
python连接MySQL数据库实例分析
2015/05/12 Python
Python实现快速多线程ping的方法
2015/07/15 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
python 有效的括号的实现代码示例
2019/11/11 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
外语学院毕业生的自我鉴定
2013/11/28 职场文书
运动会入场词60字
2014/02/15 职场文书
商务助理求职信范文
2014/04/20 职场文书
工业设计专业自荐书
2014/06/05 职场文书
奥运会口号
2014/06/13 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL