openpyxl是另一個我覺得比較好用的xlsx操作模組,支援讀和寫,功能也比較豐富 。
下面是一個讀的例子:
import openpyxl # 開啟工作簿 workbook = openpyxl.load_workbook('示例.xlsx') # 獲取工作表 sheet = workbook.active # 讀取指定單元格的資料 cell_value = sheet['A1'].value print("A1單元格的數值為:", cell_value) # 讀取指定行和列的單元格資料 row_num = 1 col_num = 1 cell_value = sheet.cell(row=row_num, column=col_num).value print(f"第{row_num}行,第{col_num}列的數值為: {cell_value}") # 按行讀取資料,返回row是一個tuple for row in sheet.iter_rows(values_only=True): print(row) # 關閉工作簿 workbook.close()
下面是一個寫的例子,包括填充資料和設定格式:
from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, Border, Side # 建立一個新的工作簿 workbook = Workbook() # 獲取活動的工作表 sheet = workbook.active # 寫入資料 sheet['A1'] = '姓名' sheet['B1'] = '年齡' # 設定字型大小和加粗 sheet['A1'].font = Font(size=14, bold=True) sheet['B1'].font = Font(size=14, bold=True) # 寫入資料行 data = [('Alice', 30), ('Bob', 25), ('Charlie', 35)] for row_num, row_data in enumerate(data, start=2): sheet[f'A{row_num}'] = row_data[0] sheet[f'B{row_num}'] = row_data[1] # 設定列寬 sheet.column_dimensions['A'].width = 20 sheet.column_dimensions['B'].width = 10 # 設定背景顏色 for row in sheet.iter_rows(min_row=1, max_row=len(data)+1, min_col=1, max_col=2): for cell in row: cell.fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid") # 設定邊框為細實線 thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin')) for row in sheet.iter_rows(min_row=1, max_row=len(data)+1, min_col=1, max_col=2): for cell in row: cell.border = thin_border # 儲存工作簿 workbook.save('example.xlsx')