#安装包
pip install xlrd
#调用包
import xlrd
#打开一个excel并创建对象存储
data=xlrd.open_workbook("test.xlsx")
#获取文件中所有sheet的名称
data.sheet_names()
#根据工作表的名称获取工作表的内容
text=data.sheet_by_name("sheet1")
#根据工作表的名称获取工作表的行数、列数及其名称
name=table.names
rownumber=table.nrows
colnuber=table.ncols
#获取单元格内容的三种方式
table.cell(i,j).value
table.cell_value(i,j)
table.row(i)[j].value
#获取单元格的数据类型
table.cell(i,j).ctype
type(table.cell_value(i,j))
#xlrd的数据类型:0 empty,1 string,2 number,3 date,4 boolean,5 error
#默认excel直接取出的数据直接打印会有问题:数字一律按照浮点型打印,日期输出成一串小数,布尔值输出0或者1,所以我们必须在程序中做判断处理转换成我们需要的数据类型
#获取工作表第一行所有内容
table.row_values(0)
#获取工作表的第一列所有内容
table.col_values(0)
Excel中的日期转换
此时需要调用xlrd的xldate_as_tuple模块或者xldate_as_datetime模块
from xlrd import xldate_as_tuple
from xlrd import xldate_as_datetime
import date
xlrd.xldate_as_tuple(table.cell_value(2,2),0)
xldate_as_tuble(date,mode),此函数有两个参数,第一个参数是excel的小数日期,xldate_as_tuple第二个参数有两种取值,0或者1,0是以1900-01-01为基准的日期,而1是1904-01-01为基准的日期。该函数返回的是一个元组,他的值类似:(year, month, day, hour, minute, nearest_second)
print(sheet1.row(1))
[number:1.0, text:'张三', xldate:32874.0]
print(xlrd.xldate_as_tuple(sheet1.cell_value(1,2),0))##直接转换成元祖的形式
(1990, 1, 1, 0, 0, 0)
##直接转换成datetime的形式
xlrd.xldate.xldate_as_datetime(sheet1.cell(1,2).value, 0)
datetime.datetime(1990, 1, 1, 0, 0)