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提取html文件中的特定数据的实现代码
Mar 24 Python
python脚本内运行linux命令的方法
Jul 02 Python
利用Python实现网络测试的脚本分享
May 26 Python
Python人脸识别初探
Dec 21 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
tensorflow获取变量维度信息
Mar 10 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
简单了解Django应用app及分布式路由
Jul 24 Python
Python列表元素常见操作简单示例
Oct 25 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
Python之Sklearn使用入门教程
Feb 19 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 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获取指定日期是星期几的实现方法
2016/11/30 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
python os.path模块常用方法实例详解
2018/09/16 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
在python中做正态性检验示例
2019/12/09 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
工程师自我评价怎么写
2013/09/19 职场文书
2014和解协议书范文
2014/09/15 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
pytorch fine-tune 预训练的模型操作
2021/06/03 Python