openpyxl操作excle
excle的基本操作
python操作excle的包是openpyxl,使用如下命令安装:pip install openpyxl
获取excle文件:
1  | wb = openpyxl.load_workbook('123.xlsx')  | 
如果是创建新的excle,则可以:
1  | wb = openpyxl.Workbook()  | 
excle的数据都是存储在表中,即sheet1,sheet2这些,如下图所示:
一个excle可以有多个sheet,需要获取到对应sheet再操作,有多种办法,如下:
1  | sheet = wb.worksheets[0]  | 
当我们获取到sheet1以后,就可以开始操作数据,例如想要获取A1的文本:
1  | sheet['A1'].value  | 
如果需要某个表格的所有数据,假设我有如下表格:
使用for循环遍历:
1  | import openpyxl  | 
openpyxl获取行数的方法为sheet.iter_rows(),获取列数可以直接通过当前行获取也就是for cell in row,
以上代码是逐行遍历,结果如下:
那么怎么修改数据呢?我们先来看看代码:
1  | sheet['A1'].value='1111111'  | 
以上都是修改A1的值,修改完以后还需要保存:
1  | wb.save('123.xlsx')  | 
excle的样式修改
在平常工作中,excle不单是写数据,还有样式的修改。
字体样式
openpyxl中有专门的字体样式,可通过以下方法导入:
1  | from openpyxl.styles import Font, PatternFill, Border, Side, Alignment  | 
先引入excle的样式,然后通过构造函数,创建一个样式,比如以上就是创建了一个字体为雅黑,字体大小为10,不加粗,没有斜体,没有下划线,颜色为黑色。
创建好样式后,还要应用到单元格中,如下:
1  | sheet['A1'].font=font  | 
填充样式
为单元格填充背景色,图案等。
1  | from openpyxl.styles import Font, PatternFill, Border, Side, Alignment  | 
以上就是填充图案为darkUp,开始颜色为黄色,结束颜色为红色,效果如下:
如果要完全填充,可以使用type为solid,如下:
1  | fill = PatternFill(fill_type='solid', fgColor='FFFF00')  | 
type有多种可选,可参考以下: {‘gray0625’, ‘lightHorizontal’, ‘darkVertical’, ‘darkGray’, ‘darkDown’, ‘solid’, ‘lightTrellis’, ‘darkHorizontal’, ‘gray125’, ‘lightGray’, ‘lightDown’, ‘lightUp’, ‘mediumGray’, ‘darkUp’, ‘darkGrid’, ‘darkTrellis’, ‘lightVertical’, ‘lightGrid’}
边框样式
1  | border = Border(left=Side(border_style='dashDotDot',color='9932CC'),  | 
上面设置了上下左右四个边框的颜色以及样式,这里设置为虚线样式,颜色随机抽取了四个比较深的颜色,实现的效果如下
官方给出的样式有如下选项:‘dashDot’,‘dashDotDot’,‘dashed’,‘dotted’,‘double’,‘hair’,‘medium’,‘mediumDashDot’,‘mediumDashDotDot’,‘mediumDashed’,‘slantDashDot’,‘thick’,‘thin’
特别的medium即为实线
对齐样式
1  | alignment = Alignment(horizontal='center',  | 
以上创建了一个对齐样式为水平居中,垂直居中,文字旋转角度为0(最多可以旋转180°),缩进为0。



