openpyxl 是目前比较常用的操作Excel的Python库,openpyxl库既可以读文件,也可以写文件,也可以修改文件。
安装 openpyxl
pip install openpyxl打开现有Excel文件
可以使用openpyxl.load_workbook()方法打开现有的Excel文件,可以打开xlsx,xlsm,xltx,xltm这些格式,不能打开老的xls格式。
fromopenpyxlimportload_workbook test=load_workbook(r'E:\桌面\test.xlsx')print(f"表单名分别是:{test.sheetnames}")print(f"表单的数量为:{len(test.sheetnames)}")要读取某个表单里单元格中的数据,必须要先获取表单(sheet)对象。
读取指定的单元格
可以这样sheet[‘B5’]根据列名,行号直接访问某个单元格。也可以这样sheet.cell(row=5,column=2)根据列号,行号直接访问某个单元格。**注意:**行号列号都是从1开始,不是从0开始。
fromopenpyxlimportload_workbook test=load_workbook(r'E:\桌面\test.xlsx')sheet=test.active c1=sheet['B2']c2=sheet['A2']c3=sheet.cell(row=2,column=1)print(f"B2:{c1.value}")print(f"A2:{c2.value}")print(f"cell:{c3.value}")print(f"表单名分别是:{test.sheetnames}")print(f"表单的数量为:{len(test.sheetnames)}")读取行和列里面的值
openpyxl 没有提供直接获取一行或者一列单元格的值的方法。
新建Excel,写入数据
""" 新建excel文件 """importopenpyxl#创建一个workbook对象ZJB=openpyxl.Workbook()sheet=ZJB.active sh1=ZJB.create_sheet('喜剧',0)sh1['A1']='剧名'sh1['B1']='剧情'sh1['C1']='上映时间'sh2=ZJB.create_sheet('悬疑',1)sh3=ZJB.create_sheet('古装',2)""" 写入数据 1.写数据基本的用法 """importopenpyxl#创建一个workbook对象ZJB=openpyxl.Workbook()sheet=ZJB.active sh1=ZJB.create_sheet('喜剧',0)sh1['A1']='剧名'sh1['B1']='剧情'sh1['C1']='上映时间'sh2=ZJB.create_sheet('悬疑',1)sh3=ZJB.create_sheet('古装',2)sh3['A2']='玉茗茶骨'#保存文件ZJB.save('追剧列表.xlsx')""" 写入数据 2.保存在字典中的数据写入excel表中 """importopenpyxl NameAge={'张飞':38,'赵云':27,'许褚':36,'典韦':38,'关羽':39,'黄忠':49,'徐晃':43,'马超':23,}#创建一个workbook对象ZJB=openpyxl.Workbook()sheet=ZJB.active sheet.title='年龄表'sheet['A1']='姓名'sheet['B1']='年龄'#写入内容row=2forname,ageinNameAge.items():sheet.cell(row,1).value=name sheet.cell(row,2).value=age row=row+1#保存文件ZJB.save('年龄表.xlsx')""" 写入数据 3.写入保存在列表和元组中的数据,可以使用append方法在sheet的末尾添加新行,写入数据。 """importopenpyxl NameAge=[['张飞',38],['赵云',27],['许褚',36],['典韦',38],['关羽',39],['黄忠',49],['徐晃',43],['马超',23]]#创建一个workbook对象ZJB=openpyxl.Workbook()sheet=ZJB.active sheet.title='年龄表'sheet['A1']='姓名'sheet['B1']='年龄'#写入内容forrowinNameAge:sheet.append(row)#保存文件ZJB.save('年龄表1.xlsx')插入行,插入列
sheet对象的insert_rows和insert_cols方法,分别用来插入行和列。
importopenpyxl ts=openpyxl.load_workbook('年龄表1.xlsx')sheet=ts['年龄表']sheet.insert_rows(2)sheet.iter_cols(3)ts.save('年龄表1.xlsx')删除行,删除列
sheet对象的delete_rows和delete_cols方法,分别用来删除行和列。
importopenpyxl ts=openpyxl.load_workbook('年龄表1.xlsx')sheet=ts['年龄表']sheet.delete_rows(4)sheet.delete_cols(2)ts.save('年龄表1.xlsx')