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实现strcmp函数功能示例
Mar 25 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
Python 比较两个数组的元素的异同方法
Aug 17 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Python-while 计算100以内奇数和的方法
Jun 11 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
python 定义类时,实现内部方法的互相调用
Dec 25 Python
python实现堆排序的实例讲解
Feb 21 Python
Pytorch转tflite方式
May 25 Python
Python中如何添加自定义模块
Jun 09 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
Python+Selenium自动化环境搭建与操作基础详解
Mar 13 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默认安装产生系统漏洞
2006/10/09 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
python虚拟环境迁移方法
2019/01/03 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
python 项目目录结构设置
2020/02/14 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
《圆明园的毁灭》教学反思
2014/02/28 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
研讨会主持词
2014/04/02 职场文书
幼儿园小班评语
2014/04/18 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
白银帝国观后感
2015/06/17 职场文书
信用卡工资证明范本
2015/06/19 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
mysq启动失败问题及场景分析
2021/07/15 MySQL
nginx之内存池的实现
2022/06/28 Servers