您好,欢迎访问一九零五行业门户网

如何用python打开excel

最近看到好几次群里有人问xlwt、wlrd的问题,怎么说呢,如果是office2007刚出来,大家用xlsx文件用不习惯,还可以理解,这都10年过去了喂,就算没有进化到office2016,还在用office2003的有点说不过去吧。有人可以用xlsx保存为xls啊!——故意多做几步操作,目的呢?为了兼容?兼容古老的office2003?而且,既然都用python来操作excel了,还要手动保存一遍文件,这是神马思路?
所以,我还是觉得,应该放弃xls而转型xlsx。所以才有了这篇文章——xlwt、wlrd只能读写xls文件,而不能操作xlsx文件。
解决方案:openpyxl。这是一个非常简单的库,有几分钟就能上手了。安装非常简单,pip install openpyxl一步搞定,我就主要来说说对excel的操作。当然,前面废话那么多,同学们差不多也能猜到了吧,openpyxl只能操作xlsx文件而不能操作xls文件。
1、基本概念
在openpyxl中,主要用到三个概念:workbooks,sheets,cells。workbook就是一个excel工作表;sheet是工作表中的一张表页;cell就是简单的一个格。openpyxl就是围绕着这三个概念进行的,不管读写都是“三板斧”:打开workbook,定位sheet,操作cell。下面分读和写分别介绍几个常见的方法。
2、读取xlsx
为了做实验,我事先准备好了一个excel文档,里面有sheet1,sheet2,sheet3这三个页,在sheet3中填入了如下内容:
首先用
from openpyxl import load_workbook
引入库
wb = load_workbook("template.xlsx")
打开一个xlsx文件
print(wb.sheetnames) # ['sheet1', 'sheet2', 'sheet3']
可以看看打开的excel里有哪些sheet页
sheet = wb.get_sheet_by_name("sheet3")
读取到指定的sheet页,sheet就变得神奇了,想要的内容都在这里。比如:
print(sheet["c"]) # (<cell sheet3.c1>, <cell sheet3.c2>, <cell sheet3.c3>, <cell sheet3.c4>, <cell sheet3.c5>, <cell sheet3.c6>, <cell sheet3.c7>, <cell sheet3.c8>, <cell sheet3.c9>, <cell sheet3.c10>) <-第c列print(sheet["4"]) # (<cell sheet3.a4>, <cell sheet3.b4>, <cell sheet3.c4>, <cell sheet3.d4>, <cell sheet3.e4>) <-第4行print(sheet["c4"].value) # c4 <-第c4格的值print(sheet.max_row) # 10 <-最大行数print(sheet.max_column) # 5 <-最大列数for i in sheet["c"]: print(i.value, end=" ") # c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 <-c列中的所有值
写入xlsx
首先用
from openpyxl import workbookwb = workbook()
创建一个工作表,然后
sheet = wb.active
找到活动的sheet页。空的excel表默认的sheet页就叫sheet,如果想改名字,可以直接给title属性赋值。
sheet.title = "new shit"
这个属性是可读可写的。当然,这个只针对当前活动页,别的页的话,可以用create_sheet和remove_sheet进行添加和删除。
往sheet页里面写内容就比较简单了,跟上面读一样,
sheet['c3'] = 'hello world!'for i in range(10): sheet["a%d" % (i+1)].value = i + 1
我们还可以进行花式操作,比如写写公式:
sheet["e1"].value = "=sum(a:a)"
最后记得保存
wb.save('保存一个新的excel.xlsx')
以上就是如何用python打开excel的详细内容。
其它类似信息

推荐信息