Python word實現讀取及匯出程式碼解析
阿新 • • 發佈:2020-07-09
2個簡單的程式碼,幫你實現word的匯出和word的讀取
功能一:匯出word,word中的內容為
程式碼:
from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT #設定物件居中、對齊等。 from docx.enum.text import WD_TAB_ALIGNMENT,WD_TAB_LEADER #設定製表符等 from docx.shared import Inches #設定影象大小 from docx.shared import Pt #設定畫素、縮排等 from docx.shared import RGBColor #設定字型顏色 from docx.shared import Length #設定寬度 from docx.oxml.ns import qn import time today=time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y="年",m="月",d="日") document=Document() document.styles["Normal"].font.name=u'宋體'# 設定文件的基礎字型 document.styles["Normal"].element.rPr.rFonts.set(qn('w:eastAsia'),u'宋體')#設定文件的基礎中文字型 #初始化建立第一個自然段 p1=document.add_paragraph() p1.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER#對齊方式為居中 run1=p1.add_run("關於下達%s產品的通知"%today) run1.font.name="微軟雅黑" run1.font.size=Pt(21) # 字型大小為21磅 run1.font.bold=True #加粗 p1.space_after=Pt(5)#段後距離5磅 p1.space_before = Pt(5)# 段前距離5磅 # 建立第一個自然段 i='客戶3' p2 = document.add_paragraph() run2 = p2.add_run("%s:" % i) run2.font.name = "仿宋_GB2312" run2.element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312') run2.font.size = Pt(16) run2.font.bold = True # 建立第一個自然段 p3 = document.add_paragraph() run3 = p3.add_run(" 根據公司安排,為提供優質客戶服務,我單位將價格通知如下:" ) run3.font.name = "仿宋_GB2312" run3.element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312') run3.font.size = Pt(16) run3.font.bold = True # 建立表格 table=document.add_table(rows=3,cols=3,style='Table Grid') table.cell(0,0).merge(table.cell(0,2))# 合併第一行 table_run1=table.cell(0,0).paragraphs[0].add_run('XX產品報價表')# 合併單位格內填入XX產品報價表 table_run1.font.name = u"隸書" table_run1.element.rPr.rFonts.set(qn('w:eastAsia'),u'隸書') table.cell(0,0).paragraphs[0].alighment=WD_PARAGRAPH_ALIGNMENT.CENTER#居中 table.cell(1,0).text='日期' table.cell(1,1).text = '價格' table.cell(1,2).text = '備註' table.cell(2,0).text = today table.cell(2,1).text ='100' table.cell(2,2).text = '' document.add_page_break()#分頁符 document.save('價格通知.docx')#儲存
需要說明的是
run3.font.name = "仿宋_GB2312"
run3.element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
這兩句均是設定字型為仿宋_GB2312,之所以要兩種格式寫兩遍,是因為word對中文支援不太友好,需要再填一句
功能二:讀取word,word中的內容為
讀取表格外文字的程式碼:
from docx import Document document=Document("長恨歌.docx") print("讀取非表格中的內容:") all_paragraphs=document.paragraphs for paragraph in all_paragraphs: print(paragraph.text)
讀取表格內文字的程式碼:
from docx import Document document=Document("長恨歌.docx") print("讀取表格中的內容:") tables=document.tables for i in range(len(tables)): tb=tables[i]#獲取表格的行 tb_rows=tb.rows #讀取每一行內容 for i in range(len(tb_rows)): row_data=[] row_cells=tb_rows[i].cells#讀取每一行單元格內容 for cell in row_cells:#單元格內容 row_data.append(cell.text) print(''.join(row_data))
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。