小编是做数据分析相关基础工作的,其中也包含数据通报,之前每次通报数据直接导出一个csv就可以了,非常滴方便,可惜这次领导说,咱也方便大家一次,做好看一点,卷死他们(傻小子)。卷就卷把,反正我还行。
第一步,开始了在网上找合适的操作包,从一开始,在上学时代还记得有xlwt,但是怎么都不好用,后来终于在网上找到了openpyxl。那就开卷。
因为设计公司资料,就简单来一个excel,作为演示,excel如下(sheet名称为“演示sheet”)
| 小明 | 语文 | 81 |
| 小明 | 数学 | 82 |
| 小明 | 英语 | 83 |
| 小方 | 语文 | 91 |
| 小方 | 数学 | 92 |
| 小方 | 英语 | 93 |
| 小红 | 语文 | 71 |
| 小红 | 数学 | 72 |
| 小红 | 英语 | 73 |
我们简单完成
1、增加一行在第一行,并且第一行的前三列合并,文字设置成“成绩单”,
2、合并每个人的名字为一个大单元格
3、对语文分数标红加粗
首先我们开始引入相关包库
import openpyxl
from openpyxl.styles import Alignment
from openpyxl.styles import Font
from openpyxl.styles import Side, Border, colors
打开文件并且展示所有sheet页名称
wb = openpyxl.load_workbook('./演示excel.xlsx') #读入相关excel
wb.get_sheet_names() #获取文件的所有sheet名称
['演示sheet', 'Sheet2', 'Sheet3']
打开我们对应的sheet
w1 = wb.get_sheet_by_name('演示sheet') #打开对应的sheet
强烈建议,在进行格式操作之前,一定把插入和删除的列先完成,要不影响后续的格式
w1.insert_rows(1) #插入列
print(w1.max_row,w1.max_column)#输出列和行数

这时候保存excel,打开,如上图。
设置所有边框加粗
#设置所有边框加粗
border = Border(top=Side(border_style='thin', color=colors.BLACK),
bottom=Side(border_style='thin', color=colors.BLACK),
left=Side(border_style='thin', color=colors.BLACK),
right=Side(border_style='thin', color=colors.BLACK))
for i in range (1,w1.max_row + 1):
for j in range (1,w1.max_column + 1):
w1.cell(row = i,column = j).border = border

这样实现了实线的效果
合并单元格,并填入“成绩单”
#合并单元格
w1.merge_cells('A1:C1')
w1.cell(row = 1,column = 1).value = '成绩单'
w1.cell(row=1, column=1).alignment = Alignment(horizontal='center', vertical='center')

继续合并单元格
#合并单元格
w1.merge_cells('A2:A4')
w1.cell(row = 2,column = 1).value = '小明'
w1.cell(row=2, column=1).alignment = Alignment(horizontal='center', vertical='center')
#合并单元格
w1.merge_cells('A5:A7')
w1.cell(row = 5,column = 1).value = '小方'
w1.cell(row=5, column=1).alignment = Alignment(horizontal='center', vertical='center')
#合并单元格
w1.merge_cells('A8:A10')
w1.cell(row = 8,column = 1).value = '小红'
w1.cell(row=8, column=1).alignment = Alignment(horizontal='center', vertical='center')

填补字体和颜色
#填补颜色
fill = openpyxl.styles.PatternFill("solid", fgColor="FF0000")#颜色也可以直接设置red等
font = openpyxl.styles.Font(color = 'FFFFFF')
w1.cell(row=2, column=3).fill = fill
w1.cell(row=2, column=3).font = font
w1.cell(row=5, column=3).fill = fill
w1.cell(row=5, column=3).font = font
w1.cell(row=8, column=3).fill = fill
w1.cell(row=8, column=3).font = font

保存文件
wb.save('演示excel01.xlsx')
本文介绍了如何使用Python的openpyxl库对Excel进行样式设计和修改,包括合并单元格、设置字体颜色和加粗、添加边框等操作,以实现数据通报的美化。
2034

被折叠的 条评论
为什么被折叠?



