作者:晨曦来源:早起Python大家好。在办公自动化系列的前十几篇文章中,我们主要是根据实际案例需求讲解了python如何自动化办公操作,并多次使用了openpyxl。处理表格,今天我们就来详细盘点一下python操作Excel神器openpyxl的各种操作吧!本文将以详图/代码的形式讲解Excel的读写和样式调整。可以作为快速参考手册,边用边查。建议保存!安装openpyxl是非标准库,需要自己安装。安装过程并不困难。Windows/Mac用户可以使用pip在命令行(CMD)/终端(Terminal)中安装pipinstallopenpyxl。使用该模块的前置知识在我们需要对Excel表格结构有更详细的了解之前,请看下图:简而言之,一个Excel工作簿是由一个或多个工作表组成的,一个工作表可以看作是一个多行。也可以看做是由多列组成的,每一行每一列都是由多个单元格组成的!阅读Excel1。LoadExcelfromopenpyxlimportload_workbookworkbook=load_workbook(filename='test.xlsx')print(workbook.sheetnames)注意load_workbook只能打开已有的Excel,不能新建工作簿2.按名称获取工作表fromopenpyxlimportload_workbookworkbook=load_workbook(filename='other.xlsx')print(workbook.sheetnames)sheet=workbook['workbusiness']如果工作表只有一张,也可以使用:sheet=workbook.active3。获取表格的内容print(sheet.dimensions)的范围4.获取某个单元格的具体内容,这里提供了两种方法。注意具体的值需要以cell.value的形式输出5.获取单元格的行、列、坐标print(cell.row,cell.column,cell.coordinate)6.获取值这里有多个网格一个细节,Excel中每一列都是由一个字母决定的,是字符类型;每行由一个数字决定,是整数类型当然上面三种方法都是获取一堆表格,现在要输出每张表格的值,需要遍历:forcellincells:print(cell.value)这三种方法还是有各自的局限性,如果我需要一个特定范围的值,又懒得转换成字母数字坐标。例如,我想获取从第2行到第5行以及第1列到第3列的所有单元格。因此,必须掌握第四种方法:7.读取sheet.rows中row的所有行:print(row)Excelwrite1.保存Excelworkbook.save(filename='Excelworksheet1.xlsx')ifread如果路径写入Excel也是一样,原文件会被修改。如果读写Excel的路径不同,会另存为一个新文件。2.写入单元格cell=sheet['A1']cell.value='业务需求3.写入一行或多行数据4.将公式写入单元格并保存sheet['K11']='=AVERAGE(K1:K10)'5。插入一行或多行6.插入一列或多列7.删除多行8.删除多列9.移动范围数据10.新建Excel表格fromopenpyxlimportWorkbookworkbook=Workbook()Excel样式调整1.设置字体style2.设置对齐方式水平对齐:distributed,justify,center,left,fill,centerContinuous,right,general垂直对齐:bottom,distributed,justify,center,top3.设置边框样式边缘样式:double,mediumDashDotDot,slantDashDot,dashDotDot,dotted,hair,mediumDashed,dashed,dashDot,thin,mediumDashDot,medium,thick4。设置单元格填充样式5。设置行高列宽sheet.row_dimensions[1].height=50sheet.column_dimensions['C'].width=206单元格合并和取消合并sheet.merge_cells('A1:B2')sheet.merge_cells(start_row=1,start_column=3,end_row=2,end_column=4)unmergesheet.unmerge_cells('A1:B2')sheet.unmerge_cells(start_row=1,start_column=3,end_row=2,end_column=4)
