怎么在Python中利用python-docx對(duì)word文檔進(jìn)行讀寫(xiě)?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為新野等服務(wù)建站,新野等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為新野企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。一、安裝包
pip3 install python-docx
二、創(chuàng)建word文檔
下面是在官文示例基礎(chǔ)上對(duì)個(gè)別地方稍微修改,并加上函數(shù)的使用說(shuō)明
from docx import Document from docx.shared import Inches document = Document() #添加標(biāo)題,并設(shè)置級(jí)別,范圍:0 至 9,默認(rèn)為1 document.add_heading('Document Title', 0) #添加段落,文本可以包含制表符(\t)、換行符(\n)或回車符(\r)等 p = document.add_paragraph('A plain paragraph having some ') #在段落后面追加文本,并可設(shè)置樣式 p.add_run('bold').bold = True p.add_run(' and some ') p.add_run('italic.').italic = True document.add_heading('Heading, level 1', level=1) document.add_paragraph('Intense quote', style='Intense Quote') #添加項(xiàng)目列表(前面一個(gè)小圓點(diǎn)) document.add_paragraph( 'first item in unordered list', style='List Bullet' ) document.add_paragraph('second item in unordered list', style='List Bullet') #添加項(xiàng)目列表(前面數(shù)字) document.add_paragraph('first item in ordered list', style='List Number') document.add_paragraph('second 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') ) #添加表格:一行三列 # 表格樣式參數(shù)可選: # Normal Table # Table Grid # Light Shading、 Light Shading Accent 1 至 Light Shading Accent 6 # Light List、Light List Accent 1 至 Light List Accent 6 # Light Grid、Light Grid Accent 1 至 Light Grid Accent 6 # 太多了其它省略... table = document.add_table(rows=1, cols=3, style='Light Shading Accent 2') #獲取第一行的單元格列表 hdr_cells = table.rows[0].cells #下面三行設(shè)置上面第一行的三個(gè)單元格的文本值 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 document.add_page_break() #保存.docx文檔 document.save('demo.docx')
創(chuàng)建的demo.docx內(nèi)容如下:
三、讀取word文檔
from docx import Document doc = Document('demo.docx') #每一段的內(nèi)容 for para in doc.paragraphs: print(para.text) #每一段的編號(hào)、內(nèi)容 for i in range(len(doc.paragraphs)): print(str(i), doc.paragraphs[i].text) #表格 tbs = doc.tables for tb in tbs: #行 for row in tb.rows: #列 for cell in row.cells: print(cell.text) #也可以用下面方法 '''text = '' for p in cell.paragraphs: text += p.text print(text)'''
運(yùn)行結(jié)果:
Document Title A plain paragraph having some bold and some italic. Heading, level 1 Intense quote first item in unordered list second item in unordered list first item in ordered list second item in ordered list Document Title A plain paragraph having some bold and some italic. Heading, level 1 Intense quote first item in unordered list second item in unordered list first item in ordered list second item in ordered list Qty Id Desc 101 Spam 422 Eggs 631 Spam, spam, eggs, and spam [Finished in 0.2s]
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。