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发送arp欺骗攻击代码分析
Jan 16 Python
python基础教程之自定义函数介绍
Aug 29 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
python3 shelve模块的详解
Jul 08 Python
Tensorflow 查看变量的值方法
Jun 14 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
Python代码打开本地.mp4格式文件的方法
Jan 03 Python
python命令行工具Click快速掌握
Jul 04 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
Python 列表推导式需要注意的地方
Oct 23 Python
基于python的matplotlib制作双Y轴图
Apr 20 Python
python3读取文件指定行的三种方法
May 24 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
Javascript 获取LI里的内容
2008/12/17 Javascript
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Python中endswith()函数的基本使用
2015/04/07 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
解析python实现Lasso回归
2019/09/11 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
python实现简单飞行棋
2020/02/06 Python
重构Python代码的六个实例
2020/11/25 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
杭州-DOTNET笔试题集
2013/09/25 面试题
高中军训广播稿
2014/01/14 职场文书
公关活动策划方案
2014/05/25 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
春风化雨观后感
2015/06/11 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书