python读取excel之xlrd

示例数据
#安装包
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)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容