python 操作Excel openpyxl的使用
之前在处理一些文件时,因为数据过大,常出现一个问题
ValueError: row index was 65536, not allowed by .xls format
之前解决方案都是在同一个文件中add多个sheet来解决,总算是觉得麻烦了,抽出时间来查找另一个安装包,寻求解决之道——Openpyxl,网上的资料也不是很多,所以直接看它家的文档好了。
Openpyxl is a Python library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
这是官网的简介,总的来说算是一个比较全能的库了,在使用上,也和xlrd或者是xlwt有些许的不同。
最主要的一点,还是解决了03版本的单页index上限问题。
Create a workbook
from openpyxl import Workbook wb = Workbook()
一个book的创建至少伴随着一个sheet,通过使用openpyxl.workbook.Workbook.active()方法可以获取到当前book的sheet页
ws = wb.active() '''or''' ws = wb.get_active_sheet()#同active是同样的结果
但是,在使用这个方法时,active_sheet_index属性中default = 0,在没有特别定义值的情况下,你使用这个方法时,总是获得这个book的第一个sheet。
需要获得特定的sheet,需要使用的方法是
wb.get_sheet_by_name(title:str)#title为想要获取的sheet_name '''or''' ws = wb['Sheet2']#通过list传入名字的方式
在获取工作表的方法中,比起xlrd,少掉了sheet_by_index这样的方式。
同样的,也可以使用create_shee()方法创建新的表格。
ws1 = wb.create_sheet('Sheet1', index=0)#确认了在book中的顺序位置 ws2 = wb.create_sheet('Sheet2',)#默认安插在最后的位置
在自动创建一个Sheet时,名字是按照(Sheet, Sheet1, Sheet2, …)这样的sequence递增的,可以通过title属性更改
ws = wb.active ws.title = 'TX'
获取工作薄的表名
wb.sheetnames wb.get_sheet_names() '''返回都是同样的list''' For sheet in wb: Print(sheet.title) #也可以loop所有worksheets
创建一个copies worksheet 通过一个简单的openpyxl.workbook.Workbook.copy_worksheet() 方法
source = wb.active target = wb.copy_worksheet(source)
Data
访问单元格
访问工作表之后,我们也能对单元格内容进行定义了。
'''单元格可以通过一个确定的进行访问''' A4 = ws['A4'] '''这样的话,将会返回A4单元格,或者是创建一个原本不存在的单元格,数值可以被改变''' >>> A4 = 4
此外,也可以通过openpyxl.worksheet.Worksheet.cell()方法
它提供了通过行列号来进行访问的方式
d = ws.cell(row=4, column=2, value=10)
Note
当一个工作表在内存中被创建的时候,是不存在单元格的,只有在第一次访问时,单元格才会被创建。
正式因为这一特性,使用滚动浏览单元格替代确切的访问某一单元格将会吧他们全都在内存中穿件,即使是不对它们进行赋值
for i in range(1,101): for j in range(1,101): ws.cell(row=i, column=j)
访问多个单元格
阅读更多- Python中操作Excel 2000的xlsx文件(使用openpyxl)
- Python 使用xlrd模块操作Excel写
- python操作Excel读写--使用xlrd
- 使用python操作excel
- python操作Excel读写(使用xlrd和xlrt)
- Python 使用xlwt模块操作Excel写
- python操作Excel读写--使用xlrd
- python操作Excel读写--使用xlrd
- python操作Excel读写--使用xlrd
- python操作Excel读写(使用xlrd和xlrt)
- python操作Excel读写--使用xlrd
- 使用Python的Command Line操作Excel的Macro
- python操作Excel读写--使用xlrd
- python操作Excel读写--使用xlrd
- python操作Excel读写(使用xlrd和xlrt)
- python操作Excel读写(使用xlrd和xlrt)
- python操作Excel读写--使用xlrd
- python操作Excel读写(使用xlrd和xlrt)
- python操作Excel读写--使用xlrd
- python使用easy_install安装支持excel2007操作的openpyxl