欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解python-docx處理Word必備工具

 更新時間:2021年10月16日 14:16:53   作者:站著活  
這篇文章主要介紹了python-docx處理Word必備工具,我主要講講自己用到的幾個內(nèi)容是怎么設(shè)置的,對python-docx處理Word的相關(guān)知識感興趣的朋友一起看看吧

我的理解

為什么會用到python-docx,因為近段時間下載了大量網(wǎng)文,但格式都是html的,我個人習(xí)慣使用word處理文字,于是就想法設(shè)法把html文檔轉(zhuǎn)換為word,首先要考慮的問題就是從html中提取的文字怎么存word里呢,之前用了pandoc直接轉(zhuǎn)換,帶轉(zhuǎn)換后的效果太不理想,沒什么格式,不符合我這種對word格式有嚴格要求強迫癥人的需要,于是就到處搜尋其他方法,終于功夫不負有心人,通過幾天研究python-docx,感覺很適合我,就一邊分析html文檔,一邊思考怎么用python-docx存想要的格式word,因為我的word排版,一般習(xí)慣 頁面要設(shè)置成5678頁邊距的,大小A4的,正文主標(biāo)題 方正小標(biāo)宋,其他標(biāo)題要么黑體,要么加粗,正文要首行縮進2字符 仿宋_GB2312,頁腳要加頁碼顯示,大概這些樣式。

python-docx 創(chuàng)建一篇文檔也差不多是這么個思路,一篇文檔也就是Document()對象 首先要分成不同的節(jié),也就是由sections對象控制,然后每節(jié)中又分成不同的段落paragraphs對象,每段又由不同的塊run對象組成,針對不同的節(jié)(section)可以設(shè)置頁面的一些屬性,針對不同的段落(paragraph),可以設(shè)置間距和縮進、換行和分頁等,針對不同塊(run)可以設(shè)置字體的字型、顏色、大小等??梢韵仍O(shè)置好整篇文章的大致段落、字體等格式,然后針對不同段落和塊可以單獨再進行設(shè)置。

我主要講講自己用到的幾個內(nèi)容是怎么設(shè)置的。

安裝庫:

pip install python-docx

用到的庫

from docx import Document(文檔讀寫)
from docx.shared import Pt,Cm,Inches (字體大小,不一定全用到)
from docx.oxml.ns import qn(設(shè)置字體格式,分欄等用到)
from docx.shared import RGBColor (設(shè)置字體顏色)
from docx.enum.text import WD_ALIGN_PARAGRAPH (設(shè)置對其方式)
from docx.enum.section import WD_ORIENTATION (紙張方向用到)

設(shè)置大致格式

這樣設(shè)置完了之后有一個好處就是,后往里面寫入文檔的時候回自動按這個格式,如果有需要改動的再單獨寫入時改。

docment = docx.Document(docx_tamplate) # 讀取模板文檔,這里可以不用模板文檔,因為python-docx沒法設(shè)置頁碼,所以我先建了一個有頁碼的空白文檔作為模板文檔
# 設(shè)置正文默認格式
# 字體大小三號字(16)
docment.styles['Normal'].font.size = Pt(16)
# 字體仿宋_GB2312
docment.styles['Normal'].font.name = u'仿宋_GB2312'
docment.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
# 行間距 28磅 段前、段后不留空
docment.styles['Normal'].paragraph_format.line_spacing = Pt(29)
docment.styles['Normal'].paragraph_format.space_before = Pt(0)
docment.styles['Normal'].paragraph_format.space_after = Pt(0)
# 首行縮進2字符
docment.styles['Normal'].paragraph_format.first_line_indent = 406400
# 關(guān)閉孤行控制
docment.styles['Normal'].paragraph_format.widow_control = False
# 設(shè)置頁面大小
docment.sections[0].page_height = Cm(29.7)  # 設(shè)置A4紙的高度
docment.sections[0].page_width = Cm(21)  # 設(shè)置A4紙的寬
# 設(shè)置頁邊距
docment.sections[0].top_margin = Cm(3.7)
docment.sections[0].bottom_margin = Cm(3.4)
docment.sections[0].left_margin = Cm(2.8)
docment.sections[0].right_margin = Cm(2.6)

單獨設(shè)置段格式

doc=Document() #創(chuàng)建一個空白文檔
p1=doc.add_paragraph()  #初始化建立一個自然段
p1.alignment=WD_ALIGN_PARAGRAPH.CENTER  #對齊方式為居中,沒有這句話默認左對齊。另外右對齊:RIGHT,兩端對齊:JUSTIFY,分散對齊:DISTRIBUTE
 
p1.paragraph_format.line_spacing=1.5  #設(shè)置該段落,行間距為1.5倍,也可以像上面設(shè)默認值那樣用Pt單位來設(shè)置
p1.paragraph_format.first_line_indent=Inches(0.5)  #段落縮進0.5英寸,我還是習(xí)慣設(shè)置2字符 值為:406400
p1.paragraph_format.left_line_indent=Inches(0.5)  #設(shè)置左縮進0.5英寸。一般用不到
p1.paragraph_format.right_line_indent=Inches(0.5)  #設(shè)置右縮進0.5英寸,一般用不到
p1.paragraph_format.keep_together = False  # 段前分頁
p1.paragraph_format.keep_with_next = False  # 與下段同頁
p1.paragraph_format.page_break_before = True  # 段中不分頁
p1.paragraph_format.widow_control = False  # 孤行控制
p1.space_after=Pt(5)  #設(shè)置段后距離為5磅
p1.space_before=Pt(5)  #設(shè)置段前距離為5磅
 
run1=p1.add_run('你好')   #寫入段落的中的文本“你好”
run1.font.size=Pt(12)  #單獨設(shè)置字體大小為24
run1.font.bold=True  #樣式設(shè)置加粗
run1.italic=True  #字形設(shè)置斜體
run1.font.underline = True  # 下劃線
run1.font.color.rgb = RGBColor(255, 0, 0)  # 顏色

插入圖片

#添加圖片,設(shè)置圖片大小
doc.add_picture(r"圖片路徑", width=Cm(10))

插入表格

tab = doc.add_table(rows=5, cols=8, style='Table Grid') # 創(chuàng)建一個5行8列的表格,樣式為Table Grid
tab.cell(0, 0).text = '表角'  # 0行0列的內(nèi)容為表角
cell=tab.cell(0, 1).merge(tab.cell(0, 3)) # 合并0行1列到0行3列
p = cell.paragraphs[0]
run = p.add_run(‘合并') #在單元格內(nèi)容創(chuàng)建一個段落,并寫入‘合并'文本
run.font.size = Pt(10.5)  # 字體大小設(shè)置,和word里面的字號相對應(yīng)5號字
run.bold = True
p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 設(shè)置為加粗 居中顯示

到此這篇關(guān)于python-docx處理Word必備工具的文章就介紹到這了,更多相關(guān)python-docx處理Word內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python簡單實現(xiàn)音頻數(shù)據(jù)壓縮與解壓

    Python簡單實現(xiàn)音頻數(shù)據(jù)壓縮與解壓

    在音頻數(shù)據(jù)處理中,壓縮算法是降低存儲成本和傳輸效率的關(guān)鍵技術(shù),本文將通過一個簡單的音頻數(shù)據(jù)壓縮與解壓算法示例,探討如何利用Python實現(xiàn)這一目標(biāo),有需要的可以了解下
    2025-06-06
  • Python中asyncio與aiohttp入門教程

    Python中asyncio與aiohttp入門教程

    今天小編就為大家分享一篇關(guān)于Python中asyncio與aiohttp入門教程,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • python 去除二維數(shù)組/二維列表中的重復(fù)行方法

    python 去除二維數(shù)組/二維列表中的重復(fù)行方法

    今天小編就為大家分享一篇python 去除二維數(shù)組/二維列表中的重復(fù)行方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python使用SQLAlchemy連接ClickHouse數(shù)據(jù)庫

    Python使用SQLAlchemy連接ClickHouse數(shù)據(jù)庫

    ClickHouse是一個開源的列式數(shù)據(jù)庫管理系統(tǒng),以其高速的實時數(shù)據(jù)分析能力著稱,本文主要介紹了Python使用SQLAlchemy連接ClickHouse數(shù)據(jù)庫,感興趣的可以了解一下
    2025-04-04
  • 在python中利用最小二乘擬合二次拋物線函數(shù)的方法

    在python中利用最小二乘擬合二次拋物線函數(shù)的方法

    今天小編就為大家分享一篇在python中利用最小二乘擬合二次拋物線函數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python ConfigParser模塊的使用示例

    Python ConfigParser模塊的使用示例

    這篇文章主要介紹了Python ConfigParser模塊的使用示例,幫助大家更好的理解和學(xué)習(xí)Python ConfigParser模塊的用法,感興趣的朋友可以了解下
    2020-10-10
  • python實用代碼片段收集貼

    python實用代碼片段收集貼

    這篇文章主要介紹了python實用代碼片段收集貼,本文收集了如獲取一個類的所有子類、計算運行時間、SQLAlchemy簡單使用、實現(xiàn)類似Java或C中的枚舉等實用功能代碼,需要的朋友可以參考下
    2015-06-06
  • Pycharm報錯Non-zero?exit?code?(2)的完美解決方案

    Pycharm報錯Non-zero?exit?code?(2)的完美解決方案

    最近在使用pycharm安裝或升級模塊時出現(xiàn)了錯誤,下面這篇文章主要給大家介紹了關(guān)于Pycharm報錯Non-zero?exit?code?(2)的完美解決方案,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Jupyter Notebook 文件默認目錄的查看以及更改步驟

    Jupyter Notebook 文件默認目錄的查看以及更改步驟

    這篇文章主要介紹了Jupyter Notebook 文件默認目錄的查看以及更改步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python中創(chuàng)建字典的幾種方法總結(jié)(推薦)

    Python中創(chuàng)建字典的幾種方法總結(jié)(推薦)

    下面小編就為大家?guī)硪黄狿ython中創(chuàng)建字典的幾種方法總結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論