Python 在Word中建立表格並填入資料、圖片

E-iceblue發表於2024-03-11

在Word中,表格是一個強大的工具,它可以幫助你更好地組織、呈現和分析資訊。本文將介紹如何使用Python在Word中建立表格並填入資料、圖片,以及設定表格樣式等。

Python Word庫:

要使用Python在Word中建立或操作表格,需要先將Spire.Doc for Python這個第三方庫安裝到專案中.

pip install Spire.Doc

示例程式碼1:使用Python在Word中建立表格並填充資料

import math
from spire.doc import *
from spire.doc.common import *
 
# 建立Document物件
doc = Document()
 
# 新增一節
section = doc.AddSection()
 
# 建立一個表格
table = section.AddTable()
 
# 指定表格資料
header_data = ["商品名稱", "單位", "數量", "單價"]
row_data = [ ["底板-1","","20946","2.9"], 
                ["定位板-2","","38931","1.5"], 
                ["整平模具-3","","32478","1.1"], 
                ["後殼FD1042-4","","21162","0.6"], 
                ["棍子-5","","66517","1.2"]]
                
# 設定表格的行數和列數
table.ResetCells(len(row_data) + 1, len(header_data))
 
# 設定表格自適應視窗
table.AutoFit(AutoFitBehaviorType.AutoFitToWindow)
 
# 設定標題行
headerRow = table.Rows[0]
headerRow.IsHeader = True
headerRow.Height = 23
headerRow.RowFormat.BackColor = Color.get_Orange()
 
# 在標題行填充資料並設定文字格式
i = 0
while i < len(header_data):
    headerRow.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle
    paragraph = headerRow.Cells[i].AddParagraph()
    paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
    txtRange = paragraph.AppendText(header_data[i])
    txtRange.CharacterFormat.Bold = True
    txtRange.CharacterFormat.FontSize = 12
    i += 1
 
# 將資料填入其餘各行並設定文字格式
r = 0
while r < len(row_data):
    dataRow = table.Rows[r + 1]
    dataRow.Height = 20
    dataRow.HeightType = TableRowHeightType.Exactly
    c = 0
    while c < len(row_data[r]):
        dataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle
        paragraph = dataRow.Cells[c].AddParagraph()
        paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
        txtRange =  paragraph.AppendText(row_data[r][c])
        txtRange.CharacterFormat.FontSize = 11
        c += 1
    r += 1
 
# 設定交替行顏色
for j in range(1, table.Rows.Count):
    if math.fmod(j, 2) == 0:
        row2 = table.Rows[j]
        for f in range(row2.Cells.Count):
            row2.Cells[f].CellFormat.BackColor = Color.get_LightGray()
 
# 儲存檔案
doc.SaveToFile("Word表格.docx", FileFormat.Docx2016)

以下示例透過Section.AddTable() 方法在Word文件中新增了一個表格,然後將列表中的資料填充到了指定的單元格。此外Spire.Doc for Python庫還提供了介面設定單元格樣式等。

輸出結果:

程式碼示例2:使用Python在Word表格中插入圖片

from spire.doc import *
from spire.doc.common import *
 
inputFile = "表格示例.docx"
outputFile = "插入圖片到表格.docx"
 
# 建立Document物件
doc = Document()
 
# 載入Word文件
doc.LoadFromFile(inputFile)
 
# 獲取文件中第一個表格
table = doc.Sections[0].Tables[0]
 
# 將圖片新增到指定單元格並設定圖片大小
cell = table.Rows[1].Cells[1]
picture = cell.Paragraphs[0].AppendPicture("python.png")
picture.Width = 80
picture.Height = 80
 
cell = table.Rows[2].Cells[1]
picture = cell.Paragraphs[0].AppendPicture("java.jpg")
picture.Width = 80
picture.Height = 80
 
# 儲存結果檔案
doc.SaveToFile(outputFile, FileFormat.Docx)
doc.Close()
 

從以上程式碼可以看出,要在Word表格中插入圖片,需要先獲取指定的單元格,然後使用TableCell.Paragraphs[index].AppendPicture() 方法插入圖片。

輸出結果:


Spire.Doc for Python庫還支援對Word中的表格進行其他操作,如新增、刪除複製行或列、合併或拆分單元格等。更多示例demo可檢視:

https://www.e-iceblue.cn/docforpython/spire-doc-for-python-program-guide-content.html

對於水印問題,可以點選申請臨時授權移除,或者傳送郵件到sales@e-iceblue.com。

相關文章