小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python自動(dòng)化辦公系列之Python操作Word

 西北望msm66g9f 2020-05-17


作者介紹:

大家可以叫我黃同學(xué)(博客名:Huang Supreme),一個(gè)應(yīng)用統(tǒng)計(jì)碩士,愛好寫一些技術(shù)博客,志在用通俗易懂的寫作風(fēng)格,幫助大家學(xué)到知識(shí),學(xué)好知識(shí)!

【作者導(dǎo)語】本文是鑒于有些粉絲的工作需求,有時(shí)候需要遇到這些文件的處理。因此,我寫了一個(gè)文章集合,供大家參考。全篇包括三個(gè)章節(jié),分別為:Python使用openpyxl操作excel、python使用PyPDF2和pdfplumber操作pdf、python使用python-docx操作word。本篇為第三章節(jié)。



全文已整理為pdf,可按文末指引獲取。



本章目錄

章節(jié)三:

python使用python-docx操作word ???

1、python-docx庫介紹 ????

2、Python讀取Word文檔內(nèi)容 ???????

   1)word文檔結(jié)構(gòu)介紹 ???????

   2)python-docx提取文字和文字塊兒 

       ① python-docx提取文字 ?????????

       ② python-docx提取文字塊兒 ???????

   3)利用Python向Word文檔寫入內(nèi)容 

       ① 添加段落 ?????????

       ② 添加文字塊兒 ?????????

       ③ 添加一個(gè)分頁 ?????????

       ④ 添加圖片 ?????????

       ⑤ 添加表格 ?????????

       ⑥ 提取word表格,并保存在excel中(很重要) ????

3、利用Python調(diào)整Word文檔樣式 ???????

   1)修改文字字體樣式 ???????

   2)修改段落樣式 ?????????

       ① 對齊樣式 ?????????

       ② 行間距調(diào)整 ?????????

       ③ 段前與段后間距

上下滾動(dòng)查看更多

python使用python-docx操作word

1、python-docx庫介紹

  • 該模塊兒可以創(chuàng)建、修改Word(.docx)文件;
  • 此模塊兒不屬于python標(biāo)準(zhǔn)庫,需要單獨(dú)安裝;
  • python-docx使用官網(wǎng):python-docx官網(wǎng)(https://python-docx./en/latest/)
  • 我們在安裝此模塊兒使用的是pip install python-docx,但是在導(dǎo)入的時(shí)候是import docx;

2、Python讀取Word文檔內(nèi)容

  • 注意:每進(jìn)行一個(gè)操作,必須保存一下,否則等于白做;
1)word文檔結(jié)構(gòu)介紹

2)python-docx提取文字和文字塊兒
① python-docx提取文字

有一個(gè)這樣的docx文件,我們想要提取其中的文字,應(yīng)該怎么做?代碼如下:

from docx import Document

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')
print(doc.paragraphs)
for paragraph in doc.paragraphs:
    print(paragraph.text)

結(jié)果如下:

② python-docx提取文字塊兒
from docx import Document

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')
print(doc.paragraphs)
paragraph = doc.paragraphs[0]
runs = paragraph.runs
print(runs)
for run in paragraph.runs:
    print(run.text)
------------------------------
paragraph = doc.paragraphs[1]
runs = paragraph.runs
print(runs)
for run in paragraph.runs:
    print(run.text)

結(jié)果如下:

3)利用Python向Word文檔寫入內(nèi)容
① 添加段落
from docx import Document

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')
# print(doc.add_heading('一級(jí)標(biāo)題', level=1))   添加一級(jí)標(biāo)題的時(shí)候出錯(cuò),還沒有解決!
paragraph1 = doc.add_paragraph('這是一個(gè)段落')
paragraph2 = doc.add_paragraph('這是第二個(gè)段落')
doc.save(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx') 
'''
添加段落的時(shí)候,賦值給一個(gè)變量,方便我們后面進(jìn)行格式調(diào)整;
'''

結(jié)果如下:

② 添加文字塊兒
from docx import Document

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')
# 這里相當(dāng)于輸入了一個(gè)空格,后面等待著文字輸入
paragraph3 = doc.add_paragraph()
paragraph3.add_run('我被加粗了文字塊兒').bold = True
paragraph3.add_run(',我是普通文字塊兒,')
paragraph3.add_run('我是斜體文字塊兒').italic = True
doc.save(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx') 

結(jié)果如下:

③ 添加一個(gè)分頁
from docx import Document

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')
doc.add_page_break()
doc.save(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx') 

結(jié)果如下:

④ 添加圖片
from docx import Document
from docx.shared import Cm

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')
doc.add_picture(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\sun_wu_kong.png',width=Cm(5),height=Cm(5))
doc.save(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx') 
'''
Cm模塊,用于設(shè)定圖片尺寸大小
'''

結(jié)果如下:

⑤ 添加表格
from docx import Document

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')

list1 = [
    ['姓名','性別','家庭地址'],
    ['唐僧','男','湖北省'],
    ['孫悟空','男','北京市'],
    ['豬八戒','男','廣東省'],
    ['沙和尚','男','湖南省']
]
list2 = [
    ['姓名','性別','家庭地址'],
    ['貂蟬','女','河北省'],
    ['楊貴妃','女','貴州省'],
    ['西施','女','山東省']
]

table1 = doc.add_table(rows=5,cols=3)
for row in range(5):
    cells = table1.rows[row].cells
    for col in range(3):
        cells[col].text = str(list1[row][col])
doc.add_paragraph('-----------------------------------------------------------')
table2 = doc.add_table(rows=4,cols=3)
for row in range(4):
    cells = table2.rows[row].cells
    for col in range(3):
        cells[col].text = str(list2[row][col])
        
doc.save(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx') 

結(jié)果如下:

⑥ 提取word表格,并保存在excel中(很重要)
from docx import Document
from openpyxl import Workbook

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test2.docx')
t0 = doc.tables[0]

workbook = Workbook()
sheet = workbook.active

for i in range(len(t0.rows)):
    list1 = []
    for j in range(len(t0.columns)):
        list1.append(t0.cell(i,j).text)
    sheet.append(list1)
workbook.save(filename = r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\來自word中的表.xlsx')

結(jié)果如下:

3、利用Python調(diào)整Word文檔樣式

1)修改文字字體樣式
from docx import Document
from docx.shared import Pt,RGBColor 
from docx.oxml.ns import qn

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test2.docx')
for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        run.font.bold = True
        run.font.italic = True
        run.font.underline = True
        run.font.strike = True
        run.font.shadow = True
        run.font.size = Pt(18)
        run.font.color.rgb = RGBColor(255,255,0)
        run.font.name = '宋體'
        # 設(shè)置像宋體這樣的中文字體,必須添加下面2行代碼
        r = run._element.rPr.rFonts
        r.set(qn('w:eastAsia'),'宋體')
doc.save(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\_test1.docx')

結(jié)果如下:

2)修改段落樣式
① 對齊樣式
from docx import Document 
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')
print(doc.paragraphs[0].text)
doc.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
# 這里設(shè)置的是居中對齊
doc.save(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\對齊樣式.docx')
'''
LEFT,CENTER,RIGHT,JUSTIFY,DISTRIBUTE,JUSTIFY_MED,JUSTIFY_HI,JUSTIFY_LOW,THAI_JUSTIFY
'''

結(jié)果如下:

② 行間距調(diào)整
from docx import Document 
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\test1.docx')
for paragraph in doc.paragraphs:
    paragraph.paragraph_format.line_spacing = 5.0
doc.save(r'G:\6Tipdm\7python辦公自動(dòng)化\concat_word\行間距.docx')

結(jié)果如下:

③ 段前與段后間距
  • 這里提供代碼,自行下去檢驗(yàn)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多