Python 建立或讀取 Excel 檔案

2023-08-31 18:00:31

Excel是一種常用的電子試算表軟體,廣泛應用於金融、商業和教育等領域。它提供了強大的資料處理和分析功能,可進行各種計算和公式運算,並能建立各種型別的圖表和視覺化資料。Excel的靈活性使其成為處理和管理資料的重要工具。本文將介紹如何使用 Spire.XLS for Python 通過程式碼建立Excel檔案,以及讀取Excel資料

  • 使用Python建立Excel檔案
  • 使用Python讀取Excel檔案

 

安裝 Spire.XLS for Python 元件

Spire.XLS for Python是一款第三方 Python Excel元件,可用於在各種 Python 平臺建立、管理、操作及轉換 Excel 檔案。要完成此任務,需要先通過以下 pip 命令將Spire.XLS for Python 和 plum-dispatch v1.7.4安裝到 VS Code中。

pip install Spire.XLS-for-Python
pip install plum-dispatch==1.7.4

官網也提供了詳細安裝教學,具體可參考: 如何在 VS Code中安裝 Spire.XLS for Python

 

使用 Python 建立 Excel 檔案

Spire.XLS for Python 提供了各種各樣的類、屬性和方法可供開發人員對工作簿、工作表、某個單元格範圍甚至指定的單元格進行操作。要建立一個Excel檔案,並寫入具體資料,可參考以下Python程式碼。

from spire.xls import *
from spire.common import *

# 建立 Workbook 物件
wb = Workbook()

# 刪除預設工作表
wb.Worksheets.Clear()

# 新增一個工作表並命名
sheet = wb.Worksheets.Add("銷售表")

# 合併 A1:G1 單元格
sheet.Range["A1:G1"].Merge()

# 在 A1 中寫入資料並設定其單元格樣式
sheet.Range["A1"].Text = "銷售明細表"
sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1"].Style.Font.IsBold = True
sheet.Range["A1"].Style.Font.Size = 13

# 設定第一行的行高
sheet.Rows[0].RowHeight = 30

# 將文字和數位寫入指定的單元格
sheet.Range["A2"].Text = "訂單編號"
sheet.Range["B2"].Text = "下單日期"
sheet.Range["C2"].Text = "客戶名稱"
sheet.Range["D2"].Text = "產品名稱"
sheet.Range["E2"].Text = "訂單金額"
sheet.Range["F2"].Text = "交貨日期"
sheet.Range["G2"].Text = "訂單狀態"

sheet.Range["A3"].Text = "DXA-001"
sheet.Range["B3"].Text = "2022/12/1"
sheet.Range["C3"].Text = "客戶1"
sheet.Range["D3"].Text = "產品1"
sheet.Range["E3"].Text = "5000"
sheet.Range["F3"].Text = "2022/12/12"
sheet.Range["G3"].Text = "已完成"

sheet.Range["A4"].Text = "DXA-002"
sheet.Range["B4"].Text = "2022/12/1"
sheet.Range["C4"].Text = "客戶2"
sheet.Range["D4"].Text = "產品2"
sheet.Range["E4"].Text = "3000"
sheet.Range["F4"].Text = "2022/12/15"
sheet.Range["G4"].Text = "進行中"

sheet.Range["A5"].Text = "DXA-003"
sheet.Range["B5"].Text = "2022/12/18"
sheet.Range["C5"].Text = "客戶3"
sheet.Range["D5"].Text = "產品3"
sheet.Range["E5"].Text = "1500"
sheet.Range["F5"].Text = "2022/12/28"
sheet.Range["G5"].Text = "未完成"

sheet.Range["A6"].Text = "DXA-004"
sheet.Range["B6"].Text = "2022/12/19"
sheet.Range["C6"].Text = "客戶4"
sheet.Range["D6"].Text = "產品4"
sheet.Range["E6"].Text = "2500"
sheet.Range["F6"].Text = "2022/12/24"
sheet.Range["G6"].Text = "已取消"

sheet.Range["A7"].Text = "DXA-005"
sheet.Range["B7"].Text = "2022/12/20"
sheet.Range["C7"].Text = "客戶5"
sheet.Range["D7"].Text = "產品5"
sheet.Range["E7"].Text = "5000"
sheet.Range["F7"].Text = "2022/1/5"
sheet.Range["G7"].Text = "進行中"

# 設定指定行的行高
sheet.Range["A2:G7"].RowHeight = 20

# 設定指定列的列寬
sheet.SetColumnWidth(2, 11)
sheet.SetColumnWidth(3, 9)
sheet.SetColumnWidth(4, 8)
sheet.SetColumnWidth(6, 11)
sheet.SetColumnWidth(7, 10)

# 設定指定單元格範圍的邊框樣式
sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin)
sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black

# 設定指定單元格範圍的單元格樣式
sheet.Range["A2:G2"].Style.Color = Color.get_Gold()
sheet.Range["A2:G2"].Style.Font.IsBold = True

# 儲存檔案
wb.SaveToFile("建立Excel.xlsx", FileFormat.Version2016)

生成檔案:

 

 

使用 Python 讀取 Excel 資料

Spire.XLS for Python提供的 Worksheet.Range.Value 屬效能以字串形式返回指定單元格的數位值或文字值。要讀取一個Excel工作表中的資料,可參考以下Python程式碼。

from spire.xls import *
from spire.common import *

# 建立 Workbook 物件
wb = Workbook()

# 載入一個Excel檔案
wb.LoadFromFile("建立Excel.xlsx");

# 獲取第一個工作表
sheet = wb.Worksheets[0]

# 獲取包含資料的單元格區域
locatedRange = sheet.AllocatedRange

# 遍歷其中的行和列
for i in range(len(sheet.Rows)):

    for j in range(len(locatedRange.Rows[i].Columns)):

        # 獲取單元格的資料
        print(locatedRange[i + 1, j + 1].Value + "  ", end='')
        
    print("")

返回結果: