python操作excel的方法
摘要:
Openpyxl是一个常用的python库,用于对Excel的常用格式及其模板进行数据读写等操作。
简介与安装openpyxl库
OpenpyxlisaPythonlibraryforreadingandwritingExcel2010xlsx/xlsm/xltx/xltmfiles.
安装
pipinstallopenpyxl
pillow:在文件中需要使用images(jpeg,png,bmp,...)时,需要安装pillow库。
注意:写操作时请关闭需要操作的excel文件,否则写不成功
加载xlsx操作内容
加载外部excel的xlsx步骤:
加载xlsx文件,获得该文件的句柄,为workbook
fromopenpyxlimportload_workbook wb2=load_workbook('test.xlsx') printwb2.get_sheet_names() #['Sheet2','NewTitle','Sheet1']
在内存中新建workbook
创建workbook
开始使用openpyxl,没有必要在文件系统上创建一个文件。
只需要导入Workbook类并开始使用它。可以把wordbook想象成一个excel文件。
fromopenpyxlimportWorkbook wb=Workbook() workbook创建后至少至少要创建一个worksheet。使用openpyxl.workbook.Workbook.active() ws=wb.active
该方法使用了_active_sheet_index属性,默认会设置0
创建worksheet
使用openpyxl.workbook.Workbook.create_sheet()创建新的worksheet
ws1=wb.create_sheet("new_sheet_1")#新建sheet,插入到最后(默认) ws2=wb.create_sheet("new_sheet_2",0)#插入到最开始的位置
指定worksheet的名称
不指定sheet名称时,按照sheet,sheet1,sheet2自动增长
ws3=wb.create_sheet()
自定义worksheet名称,通过title属性指定名称,设置了sheet的名称
ws3.title="new_sheet_3"
输出wb现在所有的sheetname查看
通过openpyxl.workbook.Workbook.sheetnames()输出wb现在所有的sheetname
printwb.get_sheet_names() print(wb.sheetnames)
循环
forsheetinwb: print(sheet.title)
指定worksheettab按钮的颜色
新建的sheettab颜色为白色,可以另外指定sheettab按钮的颜色
ws3.sheet_properties.tabColor="1072BA"
激活某个worksheet
通过worksheet名称激活某个sheet使用
名称看成workbook中的一个key
ws3=wb["new_sheet_3"]
通过_active_sheet_index激活某个sheet使用
wb._active_sheet_index=1#获取第二个sheet
创建worksheet副本
使用openpyxl.workbook.Workbook.copy_worksheet()创建worksheet副本
source=wb.active target=wb.copy_worksheet(source)
只能复制cell和style。不能复制工作表之间的工作簿。
操作单元格
当worksheet在内存中被创建时,是没有包含cells的,cells是在首次访问时创建
单元格可以看作是worksheet的key,通过key去访问单元格中的数据
c=ws['A3']#访问单元格,不存在则会自动创建一个 printc.value ws['A4']='a4value'#指定单元格的值 printws['A4'].value d=ws.cell(row=4,column=2,value='通过cell指定')#通过rowcolumn数字指定 printd.value
循环在内存中创建cells
不用指定其值也可以在内存中创建
foriinrange(1,10): forjinrange(1,10): ws.cell(row=i,column=j)
通过切片Ranges指定许多cells
cell_range=ws['A1':'C2']
也可以Rangesrows或者columns
printws['C'] printws['C:D'] printws[10] printws[5:10]
也可以使用iter_rows()指定行->行,截止列
forrowinws.iter_rows(min_row=1,max_col=3,max_row=2): forcinrow: print(c) iter_cols()指定列->列,截止行 forrowinws.iter_rows(min_row=1,max_col=3,max_row=2): forcinrow: print(c)
遍历所有文件的行或列
ws['C9']='helloworld' tuple(ws.rows)#转化成tuple方便forin操作 tuple(ws.columns)
保存文件
wb=Workbook() wb.save("assets/sample.xlsx")
此操作将覆盖现有的文件没有警告。
所有的操作都需要保存到excel才能看见
保存为模板
指定属性as_template=True,就可以将文档保存为模板.xltx
wb=load_workbook('document.xlsx') wb.template=True wb.save('document_template.xltx')
或者将该属性设置为False(默认),另存为一个文档:
wb=load_workbook('document_template.xltx') wb.template=False wb.save('document.xlsx',as_template=False)
使用公式
wb=load\_workbook\('assets/sample.xlsx'\) ws=wb.active ws\["A5"\]="=SUM\(2,1\)" wb.save\("assets/sample.xlsx"\)
总结
以上所述是小编给大家介绍的python操作excel的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!