excel的格式
excel有xls和xlsx两种格式,他们的区别在于
- 文件格式不同:xls是一个特有的二进制格式,其核心结构是符合文档类型的机构,而xlsx的核心结构是xml类型的结构,采用的事基于xml的压缩方式,使其占用的空间更小。xlsx中最后一个x的意义就在于此。
- 兼容性不同,xlsx格式是向下兼容的,可以兼容xls格式。
- python自带的模块中有针对xls格式的xlrd和xlwt模块,但是这两个库仅仅针对xls的操作,当我们要操作xlsx格式文件时,则需要使用到openpyxl第三方库
xls格式文件
python中对xls格式文件相关的包有三个:xlrd、xlwt和xlutils
- xlrd只能读取文件,不能写入文件
- xlwt只能写入文件,不能读取文件
- xlutils通过.copy.copy方法,将xlrd读取的文件复制给xlwt处理,相当于在xlrd和xlwt之间架起一座桥梁
xlrd
# xls
import xlrd
path='11.xls'
index=0
sheetname='sheet1'
# 打开文件,绝对路径或者相对路径,找不到文件会报错
workbook=xlrd.open_workbook(path)
# 获取文件中所有的sheet对象
sheets=workbook.sheets()
# 获取文件中所有的sheet名称,返回名称列表
names=workbook.sheet_names()
# 获取一个文件中有多少对象
n=workbook.nsheets
# 获取对应索引的对象,索引从0开始
sheet_index=workbook.sheet_by_index(index)
# 获取指定工作表的表名
name=sheet_index.name
# 获取对应名字的对象
sheet_name=workbook.sheet_by_name(sheetname)
print(sheet_name)
# 获取xls的行和列的数量
nrows=sheet_index.nrows
ncols=sheet_index.ncols
# 获取工作表对应行和列的单元格组成的列表
# 元素的格式是 数值类型:对应数据
row_list=sheet_index.row(0)
print(row_list,'\n')
row_list=sheet_index.row(1)
# print(row_list,'\n')
col_list=sheet_index.col(2)
# print(col_list,'\n')
# 取出工作表对应行和列的值组成的列表
row_value=sheet_index.row_values(-1)# 最后一行
print(row_value,"\n")
col_value=sheet_index.col_values(0)
# 输出行和列
row_type=sheet_index.row_types(6)# 数据类型:0.空,1.字符串,2.数字,3.日期,4.布尔,5.error
print(row_type,"\n")
col_type=</