Python word实现读取及导出代码解析
作者:咔咔kk 发布时间:2021-05-11 07:56:47
标签:Python,word,读取,导出
2个简单的代码,帮你实现word的导出和word的读取
功能一:导出word,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中的内容为
读取表格外文字的代码:
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))
来源:https://www.cnblogs.com/hzcjd/p/13263415.html


猜你喜欢
- 代码如下:Dim strName, iLoop For Each strName 
- 模块化分页1.查询语句块<% 取得当前文件名 temp = Split(request.ServerV
- 事情开始得很简单。MegaWare公司市场部门想要一个新的网站来发布文档,开发团队觉得使用SQL Server 2000数据库作为文档存储仓
- 本文实例讲述了Java连接各种数据库的方法。分享给大家供大家参考。具体如下://MySQL:  
- 目录1.编写模块结构1.1 git创建空文件1.2 编写包功能函数1.3 包必备函数1、README.md文件是在git上生成的说明项目的文
- 一、介绍使用pandas.DataFrame的plot方法绘制图像会按照数据的每一列绘制一条曲线,默认按照列columns的名称在适当的位置
- Vue-validator 是Vue的表单验证插件,供大家参考,具体内容如下Vue版本: 1.0.24 Vue-validator版本: 2
- 刚才要说的是这几天亲身体验了一下ebay的AIR感觉挺不错的,无论从界面,交互,功能上都感觉挺好的。关于topic中的“剑走偏锋”是因为我认
- mysql中写判断语句的方法:方法一.CASE函数case函数语法:CASE conditionWHEN value1 THEN retur
- 一、Mysql锁是什么?锁有哪些类别?锁定义: 同一时间同一资源只能被一个线程访问  
- 安装pyinstallerpip install pyinstaller制作项目的.spec文件 进入django项目所在路径,
- 1、场景描述通常来说,前端要拿到excel数据,都是先上传存储数据库,然后再请求后端接口,获取数据。但有100个产品经理,就会有101个不同
- 本文实例讲述了Python使用爬虫抓取美女图片并保存到本地的方法。分享给大家供大家参考,具体如下:图片资源来自于www.qiubaichen
- <?php function BigEndian2Int($byte_word, $signed = false) { $int_va
- Pandas count()与values_count()用法count()values_count()在指定的统计的列名上结果多了该列:对
- 通常文本设置要不在wxml中设置,再要不就是通过weml绑定在js中设置文字。wxml<view > <text>我
- 断言声明是一种方便的程序调试方式。1、可将断言视为debug工具,Python的实现也符合这种设计理念。assert语句的执行依赖于__de
- 本文实例讲述了JavaScript字符串对象(string)基本用法。分享给大家供大家参考,具体如下:1.获取字符串的长度:var s =
- Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Djang
- 什么是Canvas<canvas> 是一个新的 HTML 元素,这个元素在 HTML5&