美文网首页
python读取excel之xlrd

python读取excel之xlrd

作者: justgo_b2cd | 来源:发表于2021-02-24 14:35 被阅读0次
    示例数据
    #安装包
    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)
    

    相关文章

      网友评论

          本文标题:python读取excel之xlrd

          本文链接:https://www.haomeiwen.com/subject/wzgjfltx.html