Home > Backend Development > PHP Tutorial > Examples of using python to process MS Word

Examples of using python to process MS Word

不言
Release: 2023-03-25 16:38:01
Original
1768 people have browsed it

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
Copy after login

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')
Copy after login

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'
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template