Python自動化辦公之word操作,主要是用到python-docx庫,針對word操作,對大批量重復性工作,使用python可以節省大量的時間和經歷
word文檔中的文字有一級標題,二級標題,正文等,python-docx則是根據這些分類對word進行操作。
pip install python-docx
from?docx?import?Document
doc?=?Document()
doc.add_heading('我是一級標題-----Python',level=1)
使用add_heading
方法添加標題,level=1
代表一級標題。
doc.add_paragraph('這是一段正文文字')
添加了一個段落的同時可以添加文字,后續繼續添加內容,這就是文字塊的概念。
from?docx.shared?import?RGBColor
from?docx.shared?import?Pt
p?=?doc.add_paragraph()
#?添加文字塊一
run?=?p.add_run('添加一段正文文字,設置格式')
#?設置顏色,使用的是RGB顏色
run.font.color.rgb?=?RGBColor(255,95,145)
#?設置字體大小
run.font.size?=?Pt(36)
#?添加文字塊二
p.add_run('加粗').bold=True
#?添加文字塊三
p.add_run('斜體').italic?=?True
#?添加文字塊四
p.add_run('普通')
print(len(doc.paragraphs))
paragraph?=?doc.paragraphs[2]
#?指定位置原內容
print(paragraph.text)
#?在指定位置添加內容
paragraph.insert_paragraph_before('這是新添加的第二段的內容')
records?=?(
????(3,?'101',?'Spam'),
????(7,?'422',?'Eggs'),
????(4,?'631',?'Spam,?spam,?eggs,?and?spam')
)
#?確定列數,先定義一個一行三列的表
table?=?doc.add_table(rows=1,?cols=3)
#?獲取第一行每個單元格,并寫入列名
hdr_cells?=?table.rows[0].cells
hdr_cells[0].text?=?'Qty'
hdr_cells[1].text?=?'Id'
hdr_cells[2].text?=?'Desc'
for?qty,?id,?desc?in?records:
????#?添加一行
????row_cells?=?table.add_row().cells
????row_cells[0].text?=?str(qty)
????row_cells[1].text?=?id
????row_cells[2].text?=?desc
python自動化辦公能做什么。
使用add_picyure
插入圖片,若是想在指定位置插入圖片,就將添加的圖片按照文字塊處理。
from?docx.shared?import?Cm
from?docx.enum.text?import?WD_PARAGRAPH_ALIGNMENT
#?添加圖片
doc.add_picture('1.jpg',width=Cm(14),height=Cm(8))
#?在指定位置插入圖片(當文字塊處理)
pic?=?doc.paragraphs[1].add_run().add_picture('1.jpg',width=Cm(10),height=Cm(6))
#?居中對齊
doc.paragraphs[1].alignment?=?WD_PARAGRAPH_ALIGNMENT.CENTER
添加完文字數據,設置段落的格式。
from?docx.shared?import?Pt,Inches
for?par?in?doc.paragraphs:
????if?par.style.name?=='Normal':
????????#?段前18磅
????????par.paragraph_format.space_before?=?Pt(18)
????????#?段后12磅
????????par.paragraph_format.space_after?=?Pt(12)
#?首行縮進
for?par?in?doc.paragraphs:
????if?par.style.name?=='Normal':
????????#?首行縮進
????????par.paragraph_format.first_line_indent?=?Inches(0.3)
from?docx.enum.section?import?WD_ORIENTATION
#?獲取第一頁
part_1?=?doc.sections[0]
#?查看高度和寬度
height?=?part_1.page_height.cm
width?=?part_1.page_width.cm
print('高度:%.2f,寬度:%.2f'?%?(height,width))
#?修改成A4紙的大小
part_1.page_height?=?Cm(29.7)
part_1.page_width?=?Cm(21.0)
#?指定為橫向,不能省略
part_1.orientation?=?WD_ORIENTATION.LANDSCAPE?
指定橫向,但是高度和寬度是前面設置好的,所以此時看起來和縱向一樣,但是通過查看頁面設置,可以發現此時的紙張方向已經變成橫向了。
所有操作完之后,一定要保存,不然word文檔都沒有,也就操作了一個寂寞。
doc.save('demo1.docx')
python處理word、這里這些都是一些常用方法,若要是有特殊的需求,最好就查看python-docx的文檔,https://python-docx.readthedocs.io/en/latest/。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
同时也捎带提醒一句,如果你发现你 hook 系统的方法不起作用的时候,或许可以检查一下你项目里引入的第三方框架里是否也 hook 了和你一样的" alt="从使用 KVO 监听 readonly 属性说起">
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态