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中操作时间之strptime()方法的使用
Dec 30 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
python中文件变化监控示例(watchdog)
Oct 16 Python
python3学生名片管理v2.0版
Nov 29 Python
python处理两种分隔符的数据集方法
Dec 12 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
Python调用钉钉自定义机器人的实现
Jan 03 Python
python机器学习库xgboost的使用
Jan 20 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
Feb 06 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 Python
Python实现归一化算法详情
Mar 18 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
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
如何离线执行php任务
2017/02/21 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
三级下拉菜单的js实现代码
2011/05/23 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
Python 处理文件的几种方式
2019/08/23 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
在校生钳工实习自我鉴定
2013/09/19 职场文书
遗体告别仪式答谢词
2014/01/23 职场文书
充分就业社区汇报材料
2014/05/07 职场文书
护士个人总结范文
2015/02/13 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers