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异常处理总结
Aug 15 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
Python3 socket同步通信简单示例
Jun 07 Python
python爬虫之BeautifulSoup 使用select方法详解
Oct 23 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
python实现最小二乘法线性拟合
Jul 19 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
PyTorch中的torch.cat简单介绍
Mar 17 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 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
django 使用 PIL 压缩图片的例子
2019/08/16 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
python统计字符的个数代码实例
2020/02/07 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
高中军训感言500字
2014/02/24 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
2014年团队工作总结
2014/11/24 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android