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

Python办公软件自动化,5分钟掌握openpyxl操作_0

时间:2023-03-26 15:21:24 Python

今天给大家分享一篇使用openpyxl操作Excel的文章。各种数据需要导入Excel?多个Excel合并?目前Python有很多处理Excel文件的库,openpyxl是其中功能和性能较好的一个。下面就为大家介绍Excel的各种操作。打开一个Excel文件并创建一个新的Excel文件>>>fromopenpyxlimportWorkbook>>>wb=Workbook()打开一个现有的Excel文件>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')打开大文件,根据需要使用只读或只写模式以减少内存消耗。wb=load_workbook(filename='large_file.xlsx',read_only=True)wb=Workbook(write_only=True)Get,createworksheet获取当前活动的工作表:>>>??ws=wb.active新建一个工作表:>>>ws1=wb.create_sheet("Mysheet")#在末尾插入(默认)#或>>>ws2=wb.create_sheet("Mysheet",0)#在第一个位置插入#或>>>ws3=wb.create_sheet("Mysheet",-1)#在倒数第二个位置插入使用工作表名获取工作表:>>>ws3=wb["NewTitle"]获取所有工作表名:>>>print(wb.sheetnames)['Sheet2','NewTitle','Sheet1']使用for循环遍历所有工作表:>>>forsheetinwb:...print(sheet.title)savetostreaminnetwork使用:>>>fromtempfileimportNamedTemporaryFile>>>fromopenpyxlimportWorkbook>>>wb=Workbook()>>>withNamedTemporaryFile()astmp:amwb.save(tmp.name)st0tmp.seektmp.read()保存归档:>>>wb=Workbook()>>>wb.save('balances.xlsx')另存为模板:>>>wb=load_workbook('document.xlsx')>>>wb.template=True>>>wb.save('document_template.xltx')直接读取单元格的单元格位置作为工作表的key:>>>c=ws['A4']给单元格赋值:>>>ws['A4']=4>>>c.value='hello,world'多个单元格可以使用切片访问单元格范围:>>>cell_range=ws['A1':'C2']使用数字格式:>>>#使用Python日期时间设置日期>>>ws['A1']=datetime.datetime(2010,7,21)>>>>>>ws['A1'].number_format'yyyy-mm-ddh:mm:ss'使用公式:>>>#添加一个简单的公式>>>ws["A1"]="=SUM(1,1)"合并单元格时,除左上单元格外的所有单元格将从工作表删除:>>>ws.merge_cells('A2:D2')>>>ws.unmerge_cells('A2:D2')>>>>>>#或等同于>>>ws.merge_cells(start_row=2,start_column=1,end_row=4,end_column=4)>>>ws.unmerge_cells(start_row=2,start_column=1,end_row=4,end_column=4)行和列可以单独指定行、列或者行和列的范围:>>>colC=ws['C']>>>>col_range=ws['C:D']>>>row10=ws[10]>>>row_range=ws[5:10]可以使用Worksheet.iter_rows()方法遍历行:>>>对于ws中的行。iter_rows(min_row=1,max_col=3,max_row=2):...forcellinrow:...print(cell)同样的Worksheet.iter_cols()方法将遍历列:>>>forcolinws.iter_cols(min_row=1,max_col=3,max_row=2):......forcellincol:...print(cell).要遍历文件的所有行或列,可以使用Worksheet.rows属性:>>>ws=wb.active>>>ws['C9']='helloworld'>>>tuple(ws.rows)((,,),(,,),(,,),(,,),(,,),(,,),(,,),(,,),(,,))或Worksheet.columns属性:>>>元组(ws.columns)((,,,,,,...,,),(,,,,,,,,))使用Worksheet.append()或迭代使用Worksheet.cell()添加一行数据:>>>对于范围(1,40)中的行:...ws1.append(range(600))>>>对于范围(10,20)中的行:...对于范围(27,54)中的列:。.._=ws3.cell(column=col,row=row,value="{0}".format(get_column_letter(col)))插入操作比较麻烦。您可以使用Worksheet.insert_rows()插入一行或多行:>>>>fromopenpyxl.utilsimportget_column_letter>>>ws.insert_rows(7)>>>row7=ws[7]>>>forcolinrange(27,54):..._=ws3.cell(column=col,row=7,value="{0}".format(get_column_letter(col)))Worksheet.insert_cols()类似。Worksheet.delete_rows()和Worksheet.delete_cols()用于批量删除行和列。只读值使用Worksheet.values属性遍历工作表中的所有行,但只返回单元格值:forrowinws.values:forvalueinrow:print(value)Worksheet.iter_rows()andWorksheet.iter_cols()可以设置values_only参数只返回单元格的值:>>>forrowinws.iter_rows(min_row=1,max_col=3,max_row=2,values_only=True):...print(row)(None,None,None)(None,None,None)以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能收到海量学习资料,涵盖Python电子书、教程、数据库编程,Django,爬虫,云计算等。或者去编程学习网了解更多编程技术知识。