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对数据库操作
Mar 28 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
Python入门_浅谈for循环、while循环
May 16 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
深入分析python数据挖掘 Json结构分析
Apr 21 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
Aug 23 Python
PyCharm下载和安装详细步骤
Dec 17 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
如何用python处理excel表格
Jun 09 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抽奖算法程序代码分享
2015/10/08 PHP
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
几款好用的python工具库(小结)
2020/10/20 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
天巡全球:Skyscanner Global
2017/06/20 全球购物
工作个人的自我评价
2014/01/14 职场文书
会议欢迎词
2015/01/23 职场文书
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏