当前位置: 首页 > 后端技术 > Python

详细讲解python操作Excel神器openpyxl的各种操作!

时间:2023-03-25 21:03:26 Python

作者:陈曦来源:早起Python本文共3321字,30个代码片段,建议阅读8分钟大家好,今天我们来详细盘点一下Python操作Excel的各种操作神器openpyxl!本文将以详图/代码的形式讲解Excel的读写和样式调整。可以作为快速参考手册,边用边查。建议保存!——安装openpyxl是非标准库,需要自己安装。安装过程并不困难。Windows/Mac用户可以在命令行(CMD)/终端(Terminal)中使用pip安装pipinstallopenpyxl——前置知识在使用该模块之前,我们需要对Excel的表结构有更详细的了解,如图下图中:简而言之,一个Excel工作簿是由一个或多个工作表组成的,一个工作表可以看作是由多个行组成,也可以看作是由多个列组成,每一行和每一列又是由多个细胞!——阅读Excel1。LoadExcelfromopenpyxlimportload_workbookworkbook=load_workbook(filename='test.xlsx')print(workbook.sheetnames)注意load_workbook只能打开已有的Excel,不能新建工作簿2.根据名称获取Worksheetfromopenpyxlimportload_workbookworkbook=load_workbook(filename='other.xlsx')print(workbook.sheetnames)sheet=workbook['workbusiness']如果工作表只有一张,也可以使用:sheet=workbook.active3。获取表格内容的范围print(sheet.dimensions)4.获取某个单元格的具体内容这里有两种方法,注意需要以cell.value的形式输出具体值5.获取行,column,andCoordinatesprint(cell.row,cell.column,cell.coordinate)6.获取多个格子的值这里还有一个细节,Excel中每一列都是由一个字母决定的,是字符类型;每行由一个数字决定,它是一个整数。当然,以上三种方法都是获取一堆表。现在要输出每个表的值,需要遍历:forcellincells:print(cell.value)这三种方法还是有各自的局限性。如果我需要特定范围的值并且懒得转换为字母数字坐标。例如,我想获取从第2行到第5行以及第1列到第3列的所有单元格。所以第四种方法一定要掌握:7.读取sheet.rows中的row的所有行:print(row)——Excel写入1.保存Excelworkbook.save(filename='Excelworksheet1.xlsx')if如果路径读取和写入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.设置字体样式2.设置对齐样式水平对齐方式: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)有了以上的基础知识,我们就可以更快的结合办公自动化需求使用