Python word实现读取及导出代码解析

作者:咔咔kk 时间:2021-05-11 07:56:47 

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))

来源:https://www.cnblogs.com/hzcjd/p/13263415.html

标签:Python,word,读取,导出
0
投稿

猜你喜欢

  • JSQL SQLProxy 的 php 版本代码

    2023-11-15 01:05:54
  • PHP PDOStatement::rowCount讲解

    2023-06-06 12:24:04
  • Win 10下Anaconda虚拟环境的教程

    2022-09-18 16:42:06
  • SQL Server数据库中的表名称、字段比较

    2024-01-13 17:02:24
  • Python+Opencv实现图像匹配功能(模板匹配)

    2022-06-28 08:56:35
  • Django自定义模板过滤器和标签的实现方法

    2023-08-12 12:24:51
  • PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享

    2023-11-06 06:36:22
  • 最小asp后门程序

    2011-04-03 10:35:00
  • 详解django.contirb.auth-认证

    2021-12-21 16:48:40
  • php+mysql实现简单登录注册修改密码网页

    2024-04-30 08:49:54
  • Python绘制地理图表可视化神器pyecharts

    2021-01-22 18:08:58
  • Python3自动安装第三方库,跟pip说再见

    2022-03-12 04:34:15
  • ADO组件之分页程序详解

    2008-10-09 12:28:00
  • python实现人脸识别经典算法(一) 特征脸法

    2021-07-15 11:35:03
  • Go语言实现一个Http Server框架(一) http库的使用

    2024-02-19 23:25:34
  • python解决12306登录验证码的实现

    2023-05-29 10:28:35
  • python tkinter中的锚点(anchor)问题及处理

    2021-05-06 23:53:16
  • MySQL8忘记密码的快速解决方法

    2024-01-19 14:58:26
  • PHP chunk_split()函数讲解

    2023-06-09 13:54:44
  • 分享python机器学习中应用所产生的聚类数据集方法

    2021-06-05 13:28:39
  • asp之家 网络编程 m.aspxhome.com