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的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
详解python 注释、变量、类型
Aug 10 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
python 实现表情识别
Nov 21 Python
Python实现简繁体转换
Jun 07 Python
Python基本数据类型之字符串str
Jul 21 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
phpmail类发送邮件函数代码
2012/02/20 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php算法实例分享
2015/07/14 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
2016/01/05 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
pandas实现选取特定索引的行
2018/04/20 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
土木工程专业个人求职信
2013/12/30 职场文书
房产转让协议书
2014/04/11 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
法律意见书范本
2015/06/04 职场文书
班主任寄语2016
2015/12/04 职场文书
《风娃娃》教学反思
2016/02/18 职场文书