Python  word实现读取及导出代码解析


Posted in Python onJuly 09, 2020

2个简单的代码,帮你实现word的导出和word的读取

功能一:导出word,word中的内容为

Python  word实现读取及导出代码解析

代码:

from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT #设置对象居中、对齐等。
from docx.enum.text import WD_TAB_ALIGNMENT,WD_TAB_LEADER #设置制表符等
from docx.shared import Inches #设置图像大小
from docx.shared import Pt #设置像素、缩进等
from docx.shared import RGBColor #设置字体颜色
from docx.shared import Length #设置宽度
from docx.oxml.ns import qn
import time
today=time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y="年",m="月",d="日")

document=Document()
document.styles["Normal"].font.name=u'宋体'# 设置文档的基础字体
document.styles["Normal"].element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')#设置文档的基础中文字体


#初始化建立第一个自然段
p1=document.add_paragraph()
p1.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER#对齐方式为居中
run1=p1.add_run("关于下达%s产品的通知"%today)
run1.font.name="微软雅黑"
run1.font.size=Pt(21) # 字体大小为21磅
run1.font.bold=True #加粗
p1.space_after=Pt(5)#段后距离5磅
p1.space_before = Pt(5)# 段前距离5磅

# 建立第一个自然段
i='客户3'
p2 = document.add_paragraph()
run2 = p2.add_run("%s:" % i)
run2.font.name = "仿宋_GB2312"
run2.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run2.font.size = Pt(16)
run2.font.bold = True

# 建立第一个自然段
p3 = document.add_paragraph()
run3 = p3.add_run(" 根据公司安排,为提供优质客户服务,我单位将价格通知如下:" )
run3.font.name = "仿宋_GB2312"
run3.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run3.font.size = Pt(16)
run3.font.bold = True

# 建立表格
table=document.add_table(rows=3,cols=3,style='Table Grid')
table.cell(0,0).merge(table.cell(0,2))# 合并第一行
table_run1=table.cell(0,0).paragraphs[0].add_run('XX产品报价表')# 合并单位格内填入XX产品报价表
table_run1.font.name = u"隶书"
table_run1.element.rPr.rFonts.set(qn('w:eastAsia'), u'隶书')
table.cell(0, 0).paragraphs[0].alighment=WD_PARAGRAPH_ALIGNMENT.CENTER#居中
table.cell(1, 0).text='日期'
table.cell(1, 1).text = '价格'
table.cell(1, 2).text = '备注'
table.cell(2, 0).text = today
table.cell(2, 1).text ='100'
table.cell(2, 2).text = ''

document.add_page_break()#分页符
document.save('价格通知.docx')#保存

需要说明的是

run3.font.name = "仿宋_GB2312"
run3.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')

这两句均是设置字体为仿宋_GB2312,之所以要两种格式写两遍,是因为word对中文支持不太友好,需要再填一句

功能二:读取word,word中的内容为

Python  word实现读取及导出代码解析

读取表格外文字的代码:

from docx import Document
document=Document("长恨歌.docx")
print("读取非表格中的内容:")
all_paragraphs=document.paragraphs
for paragraph in all_paragraphs:
  print(paragraph.text)

读取表格内文字的代码:

from docx import Document

document=Document("长恨歌.docx")
print("读取表格中的内容:")
tables=document.tables
for i in range(len(tables)):
  tb=tables[i]#获取表格的行
  tb_rows=tb.rows #读取每一行内容
  for i in range(len(tb_rows)):
    row_data=[]
    row_cells=tb_rows[i].cells#读取每一行单元格内容
    for cell in row_cells:#单元格内容
      row_data.append(cell.text)
    print(''.join(row_data))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现数值积分的Simpson方法实例分析
Jun 05 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
一篇文章快速了解Python的GIL
Jan 12 Python
python写入已存在的excel数据实例
May 03 Python
python微信公众号之关键词自动回复
Jun 15 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
python 正则表达式参数替换实例详解
Jan 17 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 Python
Django限制API访问频率常用方法解析
Oct 12 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
Nov 05 Python
python 管理系统实现mysql交互的示例代码
Dec 06 Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 #Python
实例讲解Python 迭代器与生成器
Jul 08 #Python
opencv 阈值分割的具体使用
Jul 08 #Python
如何表示python中的相对路径
Jul 08 #Python
如何卸载python插件
Jul 08 #Python
python中数字是否为可变类型
Jul 08 #Python
如何让python的运行速度得到提升
Jul 08 #Python
You might like
php explode函数实例代码
2012/02/27 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
Python实现调度算法代码详解
2017/12/01 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
出纳岗位职责范本
2013/12/01 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
小学推普周活动总结
2015/05/07 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
PyTorch dropout设置训练和测试模式的实现
2021/05/27 Python