功能一:导出word,word中的内容为
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
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中的内容为
读取表格外文字的代码:
1
2
3
4
5
6
|
from docx import Document
document = Document( "长恨歌.docx" )
print ( "读取非表格中的内容:" )
all_paragraphs = document.paragraphs
for paragraph in all_paragraphs:
print (paragraph.text)
|
读取表格内文字的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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