Python: 如何使用OpenPyXL創建並格式化Excel工作簿? from openpyxl.styles import Alignment ; cell.alignment = Alignment(horizontal=’center’, vertical=’center’)

加入好友
加入社群
Python: 如何使用OpenPyXL創建並格式化Excel工作簿? from openpyxl.styles import Alignment ; cell.alignment = Alignment(horizontal='center', vertical='center') - 儲蓄保險王

code:

# -*- coding: utf-8 -*-
"""
Created on Mon Dec  1 14:05:38 2024

@author: SavingKing
"""

import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.styles import Alignment

# 創建一個新的Excel工作簿
workbook = openpyxl.Workbook()
worksheet = workbook.active  # 獲取活動工作表默認是第一個工作表

# 向工作表中添加一些數據
data = [
    ("Name", "Age", "City"),
    ("Alice", 30, "New York"),
    ("Bob", 25, "Los Angeles"),
    ("Charlie", 35, "Chicago")
]

for row in data:
    worksheet.append(row)
    
worksheet.freeze_panes = 'A2' #凍結窗格

# 根據數據調整列寬和行高並設置置中對齊
for col in worksheet.columns:
    max_length = max(len(str(cell.value)) for cell in col) + 2  # 計算最大長度並留出額外空間
    col_number = col[0].column
    column_letter = get_column_letter(col_number)  # 獲取列字母
    worksheet.column_dimensions[column_letter].width = max_length  # 設置列寬

    for cell in col:
        cell.alignment = Alignment(horizontal='center', vertical='center')  # 設置單元格的對齊方式為水平和垂直居中

for row in worksheet.iter_rows():
#for row in worksheet.rows:
    for cell in row:
        lines = str(cell.value).count('\n') + 1  # 計算需要的行數
        height = 20 * lines  # 假設每行20像素比原先例子中的15像素略高以確保對齊顯示良好
        row_number = cell.row
        if worksheet.row_dimensions[row_number].height is None or \
           worksheet.row_dimensions[row_number].height < height:
            worksheet.row_dimensions[row_number].height = height  # 設置行高

# 保存工作簿到硬盤
workbook.save("example.xlsx")
print("Excel文件已創建並保存!")

輸出的xlsx:

Python: 如何使用OpenPyXL創建並格式化Excel工作簿? from openpyxl.styles import Alignment ; cell.alignment = Alignment(horizontal='center', vertical='center') - 儲蓄保險王

註解說明
導入必要的模塊:除了基本的openpyxl之外,
還導入了get_column_letter用於獲取列的字母表示,
以及Alignment用於設置對齊。
創建工作簿和工作表:
初始化一個新的工作簿並設置活動工作表。
添加數據到工作表:
透過迴圈將預設的數據列表添加到工作表中。
設置列寬和對齊:
根據每列最長的單元格內容調整列寬,
並將每個單元格的內容設置為水平和垂直居中。
調整行高:
根據單元格中的內容可能包含的換行符號來調整行高,
確保內容完整顯示。
保存工作簿:將工作簿保存到文件,
並打印出保存成功的消息。
這樣,我們就完成了一個帶有基本數據、
格式化列寬、行高和置中對齊的Excel工作簿的創建過程。

變數瀏覽器:

Python: 如何使用OpenPyXL創建並格式化Excel工作簿? from openpyxl.styles import Alignment ; cell.alignment = Alignment(horizontal='center', vertical='center') - 儲蓄保險王

推薦hahow線上學習python: https://igrape.net/30afN

import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.styles import Alignment

# 創建一個新的Excel工作簿
workbook = openpyxl.Workbook()
worksheet = workbook.active  # 獲取活動工作表默認是第一個工作表

# 向工作表中添加一些數據
data = [
    ("Name", "Age", "City"),
    ("Alice", 30, "New York"),
    ("Bob", 25, "Los Angeles"),
    ("Charlie", 35, "Chicago")
]

for row in data:
    worksheet.append(row)

# 根據數據調整列寬和行高並設置置中對齊
for col in worksheet.columns:
    max_length = max(len(str(cell.value)) for cell in col) + 2  # 計算最大長度並留出額外空間
    col_number = col[0].column
    column_letter = get_column_letter(col_number)  # 獲取列字母
    worksheet.column_dimensions[column_letter].width = max_length  # 設置列寬

    for cell in col:
        cell.alignment = Alignment(horizontal='center', vertical='center')  # 設置單元格的對齊方式為水平和垂直居中

# 統一設定所有行的行高
for row in worksheet.iter_rows():
    for cell in row:
        lines = str(cell.value).count('\n') + 1  # 計算需要的行數
        height = 20 * lines  # 假設每行20像素比原先例子中的15像素略高以確保對齊顯示良好
        row_number = cell.row
        worksheet.row_dimensions[row_number].height = max(worksheet.row_dimensions[row_number].height or 0, height)

# 保存工作簿到硬盤
workbook.save("example.xlsx")
print("Excel文件已創建並保存!")

代碼改進說明
統一處理列寬和行高調整:在設置列寬和行高時,我們使用相似的結構和語法,這樣可以使代碼更加清晰和一致。
行高設置方式的調整:我們將行高的設置放在一個單獨的迴圈中,這樣與列寬的設置分開,但保持了設定方式的一致性。這種方式也更容易理解和維護。

加入好友
加入社群
Python: 如何使用OpenPyXL創建並格式化Excel工作簿? from openpyxl.styles import Alignment ; cell.alignment = Alignment(horizontal='center', vertical='center') - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *