用Python处理Excel的实质即是用编程来替代手动操作,对于处理日常经常需要处理规律性的数据,可以较大地解放生产力。本文主要涉及处理以下内容:
1、取消单元格合并
2、合并单元格
3、写入公式
4、字体样式
5、文本对齐
6、单元格写入数据
主要操作就是,如何将左图的数据处理为右图的数据。在源数据表demo.xlsx中,左图位于工作簿的Sheet1表。
源数据
希望处理后数据
# 导入需要的模块
我们可以用print (wb2.sheetnames),来查看加载的工作簿中包含的工作表。工作中,一个工作簿一般包含许多工作表。
如截图所示,在待处理的数据中A3:B3是合并了单元格的,要做的操作即取消合并单元格,然后重新对A3:C3进行合并单元格。
# 选取需要处理的工作表,待处理的数据在Sheet1表
对源数据增加合并行,在A9单元格输入内容「合并」,对面积和人口进行求和。
ws['A9'].value = '合计'
ws.cell(row=9,column=2).value = '=SUM(B5:B8)'
ws.cell(row=9,column=3).value = '=SUM(C5:C8)'
# 可以用A9这种写法,也可以用(row=9,column=1)这种写法
对字体样式等进行处理,需要导入需要的模块Font和Alignment。其中Font 对象有 4 个参数,分别为:
Name:字符串值,设置字体名称,例如“Arial”
Size:整数值,设置字体大小。
Bold:布尔值,设置是否加粗字体,为 True 则加粗。
Italic:布尔值,设置是否为斜体,为 True 则为斜体。
Underline:设置是否下划线,none表示无下划线。
Color:设置字体颜色,FF0000表示红色。
Alignment设置单元格字体对齐,常用的参数如下:
horizontal,可以设置水平居中。
vertical,可以用来设置垂直居中。
wrap_text,用来设置是否自动换行。
# 导入所需的Font和Alignment
from openpyxl.styles import Font
from openpyxl.styles import Alignment
# 进行所需的字体样式,微软雅黑、13号、粗体、非斜体、无下划线、红色
all_font = Font(name='微软雅黑',size=13,bold=True,italic=False,underline='none',color='FF0000')
# 和对齐方式设置,垂直居中、水平居中、无自动换行
align = Alignment(horizontal='center',vertical='center',wrap_text=False)
对合并单元格、求和行应用相关的字体和对齐方式设置
ws['A3'].font = all_font
ws['A3'].alignment = align
ws['A9'].font = all_font
ws.cell(row=9,column=2).font = all_font
ws.cell(row=9,column=3).font = all_font
处理完之后记得进行保存。
wb2.save('demo.xlsx')
当我们完全处理完上面的步骤,然后打开工作簿会发现Sheet1的源数据已经处理OK了。
欲知更多的操作,且看下回分解。。。