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。