python 读写 excel 文件
python 读写excel文件的方法典型有以下几种:
xlwt
,xlrd
,xlutils
库pandas
库openpyxl
库
以下是API的链接:
API 链接
Pandas API 链接
这几种方法的特点:
-
xlwt
,xlrd
,xlutils
库提供的方法不多,有很多操作没办法完成,比如sheet重命名等等,而且似乎
只能处理.xls
结尾的excel。但是对简单的插入、读取操作还是比较简单易用的。 -
pandas
库操作比较丰富,通过DataFrame
操作数据,最后再写入文件。DataFrame
提供了非常丰富的元素操作。 -
openpyxl
库没有接触过,但是似乎
只能处理.xlsx
结尾的excel文件。The recommended package for reading and writing Excel 2010 files (ie: .xlsx)
说明官方推荐使用它处理
.xlsx
Excel 文件简略描述
excel有.xls
老版格式和.xlsx
新版格式,它又是一种二进制流文件,不能改后缀名直接创建。所以如果做数据存储,不如用.csv
,读写也简单,体积也更小。如果除非为了展示等需要,一般不用。
打开步骤:先file,再worksheet。
xlwt xlrd xlutils 读写
这套API看起来比较简单,提供的功能也比较少,xlwt
只能写,xlrd
只能读,而且两个库的定义不一样,不能混用。xlutils
中的copy
提供了从xlrd
的book
对象到xlwt
的book
对象的转换。
xlrd 读取
-
打开文件,
open_workbook()
函数。 -
打开目标的sheet,获得一个sheet对象,可以操作进行读取,有以下相关的函数:
get_sheet()
:接受int类型参数,指定打开目标索引的sheet。sheet_by_name()
:接受str类型参数,打开指定名称的sheet。sheet_names()
:返回列表,包含所有sheet的名称。sheet_by_index()
:和get_sheet()
相同。get_sheets()
:emmm。
-
读写:
包含变量:nrows
,ncols
函数:
cell_value
row_values
col_values
row_len()
:行有效长度,不过要设置open_workbook(ragged_row=True)
# 使用xlrd读取excel文件
def read_excel(filename):
"""
excel 包括 book 和 sheet 的概念
xlrd 打开 book 可以使用 sheet_by_name, sheet_by_index, get_sheet(), get_sheets()
获取sheet
"""
book = xlrd.open_workbook(filename=filename)
sheet = book.get_sheet(0)
"""
打印每一个cell的值,也可以通过row_value, col_value获取整行,整列的值
"""
for i in range(sheet.nrows)