1. 程式人生 > 程式設計 >使用Python 自動生成 Word 文件的教程

使用Python 自動生成 Word 文件的教程

當然要用第三方庫啦 :)

使用以下命令安裝:

pip install python-docx

使用該庫的基本步驟為:

1.建立一個文件物件(可自動使用預設模板建立,也可以使用已有檔案)。

2.設定文件的格式(預設字型、頁面邊距等)。

3.在文件物件中加入段落文字、表格、影象等,並指定其樣式。

4.儲存文件。

注:本庫僅支援生成Word2007以後版本的文件型別,即副檔名為.docx 的。

下面分步介紹其基本使用方法:

步驟一:

from docx import Document
 
doc = Document()        #以預設模板建立文件物件
 
doc = Document('a.docx')   # 讀取a.docx文件,建立文件物件

步驟二:

from docx.shared import Inches,Pt
 
def chg_font(obj,fontname='微軟雅黑',size=None):
 
  ## 設定字型函式
 
  obj.font.name = fontname
 
  obj._element.rPr.rFonts.set(qn('w:eastAsia'),fontname)
 
  if size and isinstance(size,Pt):
 
    obj.font.size = size
 
 
distance = Inches(0.3)
 
sec = doc.sections[0]       # sections對應文件中的“節”
 
sec.left_margin = distance   # 以下依次設定左、右、上、下頁面邊距
 
sec.right_margin = distance
 
sec.top_margin = distance
 
sec.bottom_margin = distance
 
sec.page_width =Inches(12)    #設定頁面寬度
 
sec.page_height = Inches(20)    #設定頁面高度
 
##設定預設字型
 
chg_font(doc.styles['Normal'],fontname='宋體')

步驟三:

1.新增段落文字

paragraph =doc.add_paragraph('text....')
 
ph_format =paragraph.paragraph_format
 
ph_format.space_before =Pt(10)   #設定段前間距
 
ph_format.space_after =Pt(12)    #設定段後間距
 
ph_format.line_spacing=Pt(19)    #設定行間距

如果希望同一段落中的文字格式不同,就需要使用Run物件(可以理解為可以單獨設定格式的段落內物件)。

如:

run = paragraph.add_run('text...')
 
run.bold = True #設定字型為粗體
 
chg_font(run,size=Pt(12)) #設定字型和字號

2.新增表格,並寫入相關內容

tab =doc.add_table(rows=4,cols=4)  #新增一個4行4列的空表
 
cell=tab.cell(1,3) #獲取某單元格物件(從0開始索引)

在單元格中新增文字:

cell.text='abc'

在單元格中新增多行文字(指定轉行)

ph =cell.paragraphs[0]
 
run=ph.add_run(‘text....')'
run.add_break()        # 新增一個折行
run.add_picture('a.png')  # 插入影象,可以是記憶體中的影象,width=Inches(1.0)指定寬度。

3.在文件中新增影象:

doc.add_picture('a.png')

步驟四:

doc.save('a.docx') # 儲存影象

做一個簡單的測試,其生成文件的速度還是比較快的。感覺比以前用reportlab庫生成PDF文件要快不少呢!

下圖是用此方式生成docx文件的截圖:

使用Python 自動生成 Word 文件的教程

以上這篇使用Python 自動生成 Word 文件的教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。