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实现的防DDoS脚本
Feb 08 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
python Flask实现restful api service
Dec 04 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
django admin后台添加导出excel功能示例代码
May 15 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
解决Python使用列表副本的问题
Dec 19 Python
Python+Appium实现自动化测试的使用步骤
Mar 24 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
Python 数据可视化之Matplotlib详解
Nov 02 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 array_filter除去数组中的空字符元素
2020/06/21 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
Using the TextRange Object
2006/10/14 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
python操作 hbase 数据的方法
2016/12/18 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
Hibernate持久层技术
2013/12/16 面试题
班主任工作经验材料
2014/02/02 职场文书
董事长助理岗位职责
2014/02/18 职场文书
家教广告词
2014/03/19 职场文书
青蓝工程实施方案
2014/03/27 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
介绍信怎么写
2015/01/30 职场文书
手术室护士个人总结
2015/02/13 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python