在Excel中,我们可以为每个单元格设置样式,如,字体,边框,数字格式以及对齐等等,同样的,Python中也可以通过openpyxl来实现类似的操作。
导入模块
from openpyxl import *
from openpyxl.styles import Font, Border, Side, Alignment
初始化workbook对象
wb = Workbook()
取得当前活动worksheet对象
ws = wb.active
边框
border = Border(left=Side(style="dashed"),right=Side(style="dashed"),top=Side(style="thin"),bottom=Side(style="double"))
ws.cell(row=1, column=1).border = border

对齐
align = Alignment(horizontal="center", vertical="center")
ws.cell(row=1, column=1).alignment = align

数字格式
通过代码实现Excel单元格数据的格式化
ws.cell(row=1, column=3).number_format = "0.0"

简单示例代码:
#导入模块
from openpyxl import *
from openpyxl.styles import Font,Border,Side,Alignment
def write_excel_file(filename):
#初始化workbook对象
wb=Workbook()
#初始化worksheet对象
ws=wb.active
#写入数据到某一个单元格
lists=[["序号","姓名","年龄"],[1,"张三",20],[2,"李四",18],[3,"王五",24]]
for row in lists:
ws.append(row)
#定义样式
font style=Font(name="微软雅黑",size=12,bold="fd",color="ffff0000")
border=Border(left=Side(style="dashed"),right=Side(style="dashed"),top=Side(style="thin"),bottom=Side(style="double",color="ffff0000"))
align=Alignment(horizontal="center",vertical="center")
#设置单元格样式
for i in range(ws.max_column):
ws.cell(row=1,column=i+1).font=fontstyle
ws.cell(row=1,column=i+1).border=border
ws.cell(row=1,column=i+1).alignment=align
for j in range(ws.max_row):
ws.cell(row=j+1,column=3).number_format="0"
保存到Excel文件
wb.save(filename)
write_excel_file("2.xlsx")
