from openpyxl.styles import Font, Alignment, Side, Border, PatternFill, GradientFill from openpyxl import load_workbook # 只能打開已經存在的表格,不能用該方法創建一個新的表格 workbook = load_workbook(filename='test.xlsx') # 通過sheet名稱獲取表格 如果只有一張表,可以直接打開 sheet = workbook.active # 修改字體樣式 bold是否加粗 , italic是否斜體 cell = sheet['A1'] font = Font(name='微軟雅黑', size=12, bold=True, italic=True, color='5DB23C') # 獲取表格中字體的樣式 cell = sheet['A2'] font = cell.font print(font.name, font.size, font.bold, font.italic) # 設置對齊樣式 horizontal:水平對齊模式 vertical:垂直對齊模式 text_rotation:旋轉角度 wrap_text:是否自動換行 cell = sheet['A2'] alignment = Alignment(horizontal='center', vertical='center', text_rotation=45) cell.alignment = alignment # 設置邊框樣式 cell = sheet['A2'] side = Side(style='thin', color='5DB23C') # 邊線樣式 邊線顏色 border = Border(left=side, right=side, top=side, bottom=side) cell.border = border # 設置填充樣式 cell = sheet['A2'] pattern_fill = PatternFill(fill_type='solid', fgColor='5DB23C') # 填充樣式 填充顏色 cell.pattern_fill = pattern_fill gradient_fill = GradientFill(stop=('FFFFFF', '99CCFF', '000000')) # (漸變顏色1,漸變顏色2,漸變顏色3....) cell.gradient_fill = gradient_fill # 設置行高和列寬 sheet.row_dimensions[1].height = 50 # 行編號 行高 sheet.column_dimensions['B'].width = 50 # 列編號 列寬 # 合並單元格 sheet.merge_cells('C1:D2') # 待合並的格子編號 sheet.merge_cells(start_row=7, start_column=1, end_row=8, end_column=4) # 取消合並單元格 sheet.unmerge_cells('C1:D2') # 待合並的格子編號 sheet.unmerge_cells(start_row=7, start_column=1, end_row=8, end_column=4) # 修改后記得保存 workbook.save(filename='test.xlsx')