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

2020-10-08 0 366

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  word实现读取及导出代码解析 http://www.ox520.com/26374.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务