ubuntu下安装python-docx

python-docx是一个用于创建和更新Microsoft Word(.docx)文件的Python库。
github:https://github.com/python-openxml/python-docx
python-docx documentatioin:https://python-docx.readthedocs.io/en/latest/

wang@wang:~$ git clone https://github.com/python-openxml/python-docx.git

安装lxml:
lxml包依赖其他包,先安装依赖包:

wang@wang:~$ sudo  apt-get install libxml2-dev libxslt-dev python-dev

再安装lxml:

wang@wang:~$ sudo apt-get install python-lxml

如果直接执行下面的语句会报:error: Could not find suitable distribution for Requirement.parse(‘lxml>=2.3.2’)

wang@wang:~/python-docx$ python setup.py install
...
Installed /usr/local/lib/python2.7/dist-packages/python_docx-0.8.10-py2.7.egg
Processing dependencies for python-docx==0.8.10
Searching for lxml==3.5.0
Best match: lxml 3.5.0

可用如下方式查看lxml版本:

wang@wang:~$ python
Python 2.7.12 (default, Nov 12 2018, 14:36:49) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from lxml import etree
>>> print etree.LXML_VERSION
(3, 5, 0, 0)

测试一下,用这个库写一个.docx文件:

wang@wang:~$ vim testpy.py

内容如下:

from docx import Document
from docx.shared import Inches

#打开一个基于默认“模板”的空白文档,几乎是您使用内置默认值在Word中启动新文档时获得的文档。
document = Document()

#添加标题,第一个参数为标题名,第二个为标题的级别
document.add_heading('Document Title', 0)

#添加段落
p = document.add_paragraph('A plain paragraph having some ') #段落内容
p.add_run('bold').bold = True #内容“blod”加粗
p.add_run(' and some ')
p.add_run('italic.').italic = True #内容“italic.”斜体

document.add_heading('Heading, level 1', level=1)
#应用段落样式
document.add_paragraph('Intense quote', style='Intense Quote')

document.add_paragraph(
    'first item in unordered list', style='List Bullet'
)
document.add_paragraph(
    'first item in ordered list', style='List Number'
)
#添加图片
document.add_picture('monty-truth.png', width=Inches(1.25))

records = (
    (3, '101', 'Spam'),
    (7, '422', 'Eggs'),
    (4, '631', 'Spam, spam, eggs, and spam')
)
#添加表格1行3列
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells#第一行
hdr_cells[0].text = 'Qty'#第一行第一个cell的内容
hdr_cells[1].text = 'Id'#第一行第二个cell的内容
hdr_cells[2].text = 'Desc'#第一行第三个cell的内容
for qty, id, desc in records: #循环插入cell并把records的内容写入
    row_cells = table.add_row().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id
    row_cells[2].text = desc

#添加分页
document.add_page_break()
#如果这里再有内容,即使上面没有满一页,也会写到下一页
document.save('demo.docx')

同时home目录下放上一张图片,并命名为monty-truth.png:
在这里插入图片描述
然后执行:

wang@wang:~$ python testpy.py 

则会在home目录生成一个demo.docx文件,内容如下:
在这里插入图片描述
用这个库读一个.docx文件,就读上面生成的文件的一部分:

wang@wang:~$ vim read_testpy.py

内容如下:

# -*- coding:utf-8 -*-
import sys
import docx

path = sys.argv[1]

file = docx.Document(path)
for para in file.paragraphs:
	print(para.text)
wang@wang:~$ python read_testpy.py demo.docx 
Document Title
A plain paragraph having some bold and some italic.
Heading, level 1
Intense quote
first item in unordered list
first item in ordered list

参考文章:https://www.cnblogs.com/ontheway703/p/5266041.html

Python-docx是一个用于创建和修改Microsoft Word (.docx)文件的Python库。它可以用来实现自动化文档处理的功能,例如: 1. 创建文档:可以使用python-docx来创建一个新的Word文档,并向其中添加段落、表格、图片等元素。 ```python from docx import Document # 创建一个Document对象 doc = Document() # 添加一个段落 doc.add_paragraph('这是第一个段落。') # 保存文档 doc.save('example.docx') ``` 2. 修改文档:可以读取一个现有的.docx文件,并对其进行修改,比如更改文本、插入新的段落等。 ```python from docx import Document # 加载已有的Word文档 doc = Document('example.docx') # 获取文档中所有的段落 for para in doc.paragraphs: print(para.text) # 添加一个新段落 doc.add_paragraph('这是新添加的段落。') # 保存修改后的文档 doc.save('modified_example.docx') ``` docxcompose是一个第三方库,它基于python-docx构建,提供了更多的功能来构建复杂的Word文档。 Ubuntu是基于Linux的操作系统,它通常用于服务器和桌面环境。在Ubuntu环境中,可以运行Python脚本,并配合使用python-docx和docxcompose来自动化处理Word文档。 例如,可以在Ubuntu环境中编写一个Python脚本,用于批量生成报告文档: ```python import os from docx import Document from docxcompose.composer import Composer # 遍历某个目录下的所有数据文件 for data_file in os.listdir('data'): # 创建一个新的Word文档 doc = Document() doc.add_paragraph('这是报告的标题。') # 添加内容 doc.add_paragraph(f'数据文件: {data_file}') # 使用docxcompose来合并文档 composer = Composer(doc) composer.append(os.path.join('templates', 'template.docx')) # 保存最终的合并文档 composer.save(f'report_for_{data_file}.docx') ``` 在这个脚本中,我们首先创建了一个新文档,然后添加了一些初始内容。接着,我们使用docxcompose的Composer对象来添加一个已有的模板文档,最后将合并后的文档保存到磁盘。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值