国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
python-docx筆記心得

最近考試系統(tǒng)項目來了一個需求,需要根據(jù)給出的模板,直接在后臺批量輸出試卷的word docx文檔
于是看了看網(wǎng)上的包 找到了:python-docx
官方文檔那叫一個難讀啊··(英語廢)
所以把重要的功能總結(jié)一下
安裝:python3 :pip install python-docx

text的font,size,大小,顏色的設(shè)置

先說一下這個api中對于一個docx的組織情況
一個word文檔,分為標題heading和paragraph等塊級元素
paragraph 內(nèi)部根據(jù)不同的文字格式,不同的字體,甚至不同的字體大小,粗體,斜體 劃分為一個個的內(nèi)聯(lián)塊(也就是后面說的 run
這句話非常重要,這決定了之后想要編輯段落文字的所有格式,每一個不同格式都要添加一次run
可以說,不論你想要在docx中添加什么東西,這個東西都是封裝在 run 這個最小單位內(nèi)部的,它的格式,必須通過操作 run 來改變
舉個栗子:以下為一個段落paragraph:

這是一個run,這是一個run,這也是一個run,

這還是一個run

和我們使用word不同,我們必須先添加一個run,并且賦給它一小段文字,然后再通過run的api來改變它的格式
實例:我們想要添加一個段落,并且把這段文字的字體的一部分設(shè)置為宋體 另外一部分設(shè)置為微軟雅黑并且將文字設(shè)置為11磅,黑色

from docx import Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPH,WD_LINE_SPACINGfrom docx.shared import Ptfrom docx.shared import RGBColorfrom docx.shared import Inchesdoc = Document()  #生成一個空的docx對象doc.add_heading() #添加標題p = doc.add_paragragh() #添加段落run=p.add_run('這段文字是宋體,') run.font.name = u'宋體'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體')run=p.add_run('這段文字是微軟雅黑') run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微軟雅黑')run.font.size = Pt(11) #設(shè)置大小為11磅run.font.color.rgb = RGBColor(0,0,0)#設(shè)置顏色為黑色document.save('demo.docx')#保存到demo.docx,默認為工程目錄下

效果:


image.png

添加圖片

實際上,圖片在docx中也被認為是一個run,和一段文字是一樣看待的
所以插入圖片也要先插入一個run,再設(shè)置run的內(nèi)容為 picture

p = document.add_paragraph()run = p.add_run()run.add_picture(img.jpg)

另外,python-docx目前只能支持插入內(nèi)聯(lián)圖片,沒有辦法插入https://exam-test.cecctm.com/media/images/detect/1111111.png
鏈接,關(guān)于內(nèi)聯(lián)圖片,是指的存在本機的圖片嗎,而不是存在互聯(lián)網(wǎng)上的圖片,有懂得dalao求解答一下——

設(shè)置頁面段落排版等

和上面不同,頁面段落的排版,是在塊級元素上進行操作的,
也就是需要對paragraph,heading等對象進行修改,但是如果牽扯到塊級元素內(nèi)部文字的大小,顏色等等,則仍然需要add_run(陰魂不散?。?br>上面這段話聽不懂沒關(guān)系,看下例子
如果你想添加一個字體大小為24磅的標題,并且居中
假如你這樣的話

from docx.enum.text import WD_ALIGN_PARAGRAPH,WD_LINE_SPACINGhead = document.add_heading('這是標題',level=1)#添加一級標題head.alignment = WD_ALIGN_PARAGRAPH.CENTER#居中

你會發(fā)現(xiàn),你沒法把heading的文字"這是標題"四個字變?yōu)?4磅了!因為你沒有在heading里面添加run,如果你希望把它變?yōu)?4磅,你必須這樣:

from docx.enum.text import WD_ALIGN_PARAGRAPH,WD_LINE_SPACINGhead = document.add_heading('level=1')#添加一級標題run = head.add_run('這是標題')run.font.size = Pt(24)head.alignment = WD_ALIGN_PARAGRAPH.CENTER#居中

總之,是不能把文字直接放在高級塊中的···不然是沒有辦法編輯的!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python自動化辦公
Word 神器 python-docx
一篇就夠,python 操作 word 文檔,使用 python-docx 落地實現(xiàn)
python 修改word中的表格
用python解析word文件(一):paragraph
教你怎么使用Python對word文檔進行操作
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服