PS:工作原因,需要操作Excel表格,先学下openpyxl。
导入库
import openpyxl
from openpyxl.styles import Font,Color #Color:用16进制数表示颜色
from openpyxl.styles import colors #colors:red,yellow之类的表示颜色
ps:这里的Color和colors,网上教程说二者是有区别的,见注释。但我实际使用时发现,colors库里面,把一些颜色给注释掉了,比如说red没了,但是还能直接使用black和blue,要使用其它颜色的话,只能用RGB16进制来表示了。
Function1、改变单元格字体颜色
#Font
ws = wb.active
ws.title = 'Font'
#default 11pt, Calibri
italic24Font = Font(size=24, italic=True)
ws['B3'].font = italic24Font
ws['B3'] = '24pt Italic'
# 这里的colors库,把一些颜色给注释掉了,不知道为什么
boldRedFont = Font(name= 'Times New Roman', bold=True, color=colors.BLUE)
ws['A1'].font = boldRedFont
ws['A1'] = 'Bold Red Times New Roman'
boldRedFont = Font(color=colors.COLOR_INDEX[2])
ws['D1'].font = boldRedFont
ws['D1'] = 'RED'
boldRedFont = Font(color=colors.COLOR_INDEX[5])
ws['G1'].font = boldRedFont
ws['G1'] = 'YELLOW'
Function2、使用公式
#Formulas
ws = wb.copy_worksheet(wb.worksheets[0])
ws.title = 'Formulas'
ws['A1'] = 200
ws['A2'] = 300
ws['A3'] = '=SUM(A1:A2)'
Q1、这里是指定单元格,实际使用时,单元格的结束位置基本都是动态的,还得琢磨下该怎么办,留个疑问,以后解决了,并且想起来了的话,再来补充。
Funciton3、设置行高、列宽
#Setting row height and colum width
ws = wb.create_sheet('dimensions')
ws['A1'] = 'Tall row'
ws.row_dimensions[1].height = 70
ws['B2'] = 'Wide colum'
ws.column_dimensions['B'].width = 20
Function4、合并单元格
Merging cells
ws = wb.create_sheet('Merged')
ws.merge_cells('A1:D3')
ws['A1'] = 'twelve cells merged together'
ws.merge_cells('C5:D5')
ws['C5'] = 'two merged cells'
Function5、解除合并单元格
#Unmerging cells
ws = wb.copy_worksheet(wb['Merged'])
ws.title = 'Unmerged'
ws.unmerge_cells('A1:D3')
ws.unmerge_cells('C5:D5')
保存
wb.save('style.xlsx')