This article mainly introduces examples of using python to process MS Word. It has certain reference value. Now I share it with you. Friends in need can refer to it.
Use python tools to read and write MS Word files (docx and doc files), mainly using the python-docx package. This article gives some commonly used operations and completes an example to help you get started quickly.
Installation
pyhton needs to use the python-docx package to process docx files. It can be easily installed using the pip tool. The pip tool is installed in python In the Scripts folder under the path
pip install python-docx
Of course you can also choose to use easy_install or manual installation
Write file content
Here we give an example directly and extract useful content according to your own needs
#coding=utf-8 from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn #打开文档 document = Document() #加入不同等级的标题 document.add_heading(u'MS WORD写入测试',0) document.add_heading(u'一级标题',1) document.add_heading(u'二级标题',2) #添加文本 paragraph = document.add_paragraph(u'我们在做文本测试!') #设置字号 run = paragraph.add_run(u'设置字号、') run.font.size = Pt(24) #设置字体 run = paragraph.add_run('Set Font,') run.font.name = 'Consolas' #设置中文字体 run = paragraph.add_run(u'设置中文字体、') run.font.name=u'宋体' r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') #设置斜体 run = paragraph.add_run(u'斜体、') run.italic = True #设置粗体 run = paragraph.add_run(u'粗体').bold = True #增加引用 document.add_paragraph('Intense quote', style='Intense Quote') #增加无序列表 document.add_paragraph( u'无序列表元素1', style='List Bullet' ) document.add_paragraph( u'无序列表元素2', style='List Bullet' ) #增加有序列表 document.add_paragraph( u'有序列表元素1', style='List Number' ) document.add_paragraph( u'有序列表元素2', style='List Number' ) #增加图像(此处用到图像image.bmp,请自行添加脚本所在目录中) document.add_picture('image.bmp', width=Inches(1.25)) #增加表格 table = document.add_table(rows=1, cols=3) hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Name' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc' #再增加3行表格元素 for i in xrange(3): row_cells = table.add_row().cells row_cells[0].text = 'test'+str(i) row_cells[1].text = str(i) row_cells[2].text = 'desc'+str(i) #增加分页 document.add_page_break() #保存文件 document.save(u'测试.docx')
The document style generated by this code is as follows
Note: There is a problem that I have not found how to solve, that is, how to set the border line for the table . If you know, please give me some advice.
Read the file content
#coding=utf-8 from docx import Document #打开文档 document = Document(u'测试.docx') #读取每段资料 l = [ paragraph.text.encode('gb2312') for paragraph in document.paragraphs]; #输出并观察结果,也可以通过其他手段处理文本即可 for i in l: print i #读取表格材料,并输出结果 tables = [table for table in document.tables]; for table in tables: for row in table.rows: for cell in row.cells: print cell.text.encode('gb2312'),'\t', print print '\n'
We still use the file we just generated, As you can see, the output result is
Note: Here we use gb2312 encoding to read, mainly to ensure Read and write Chinese correctly. Generally, UTF-8 encoding is used. In addition, python-docx mainly processes docx files. Problems may occur when loading doc files. If there are a large number of doc files, it is recommended to batch convert the doc files to docx files first. For example, use the tool doc2doc
Related recommendations:
Introduction to the method of python processing Excel xlrd
Detailed explanation of examples of Python processing csv files
The above is the detailed content of Examples of using python to process MS Word. For more information, please follow other related articles on the PHP Chinese website!