当前位置 博文首页 > Python中的xlrd模块使用整理

    Python中的xlrd模块使用整理

    作者:糖果店的幽灵 时间:2021-08-08 18:32

    目录
    • 1.简述:
    • 2.xlrd模块的基本操作
      • 2.1打开excel文件获取book对象
      • 2.2获取xlrd.book.Book 对象中的所有sheet名称
      • 2.3获取xlrd.book.Book对象中的所有sheet对象
      • 2.4判断xlrd.book.Book对象中某个sheet对象是否导入
    • 3.sheet对象的基本操作
      • 3.1行操作
      • 3.2列操作
      • 3.3单元格操作
      • 3.4对单元格中的日期/时间操作

    1.简述:

    xlrd是读取excel表格数据;

    支持 xlsx和xls 格式的excel表格;

    三方模块安装方式:pip3 install xlrd;

    模块导入方式: import xlrd

    2.xlrd模块的基本操作

    Xler的操作主要分两步:
    其一时获取book对象,
    其二book对象再次进行excel的读取操作。

    2.1打开excel文件获取book对象

    xlrd.open_workbook(filename[,logfile,file_contents,…])

    如果filename 文件名不存在,则会报错 FilenotFoundError。

    如果filename 文件名存在,则会返回一个xrld.book.Book 对象。 import xlrd

    Workbook = xlrd.open_workbook("C:\\Users\li\Desktop\银联测试案例.xls")
    print(Workbook)

    在这里插入图片描述

    2.2获取xlrd.book.Book 对象中的所有sheet名称

    Names = Workbook.sheet_names()

    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    names = workbook.sheet_names()
    print(names)

    在这里插入图片描述

    2.3获取xlrd.book.Book对象中的所有sheet对象

    Sheets = workbook.sheets()

    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    names = workbook.sheets()
    print(names)

    获取单个的sheet页对象

    三种方式 :

    第一种 worksheet1 = workbook.sheet_by_index()
    第二种 worksheet2 = workbook.sheet_by_name()
    第三种 worksheet3 = workbook.sheets()[0]

    workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    print(worksheet1,worksheet2,worksheet3)
    

    在这里插入图片描述

    2.4判断xlrd.book.Book对象中某个sheet对象是否导入

    通过文件名

    workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    print(workbook.sheet_loaded("公司分部"))

    通过索引

    workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    print(workbook.sheet_loaded(0))

    3.sheet对象的基本操作

    3.1行操作

    ①获取所有行数

    Rows = sheet.nrows 特别注意,这是属性而不是方法,不加括号。

    workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    print(worksheet1.nrows)
    

    在这里插入图片描述

    ②获取某行的数据,值为列表形式

    Value = sheet.row_values()

    workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    value = worksheet1.row_values(1)
    print(value)
    

    在这里插入图片描述

    ③获取某行的类型及数据

    Sheet.row()

    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    value = worksheet1.row(1)
    print(value)
    

    在这里插入图片描述

    ④获取某行的类型的列表

    Sheet.row_types()

    单元类型ctype:empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值);

    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    value = worksheet1.row_types(1)
    print(value)
    

    在这里插入图片描述

    ⑤以切片形式获取某行的类型及数据

    Sheet.row_slice() 记录分隔符为\n

    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    value = worksheet1.row_slice(1)
    print(value)
    

    在这里插入图片描述

    ⑥获取某行的长度

    Sheet.len()

    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    value = worksheet1.row_len(1)
    print(value)
    

    在这里插入图片描述

    ⑦获取sheet的所有生成器

    Sheet.get_rows()

    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    row = worksheet1.get_rows()
    for one in row:
        print(one)
    

    在这里插入图片描述

    3.2列操作

    ①获取有效列数

    Sheet.cols 注意:此处为属性不加括号

    ②获取某列数据

    Sheet.values()

    ③获取某列类型

    Sheet.types()

    单元类型ctype:empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值);

    ④以slice切片方式获取某列数据

    Sheet.value_slice()
    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    sheets = workbook.sheets()
    
    worksheet1 = workbook.sheet_by_index(0)
    worksheet2 = workbook.sheet_by_name("公司分部")
    worksheet3 = workbook.sheets()[0]
    
    cols = worksheet1.col
    value = worksheet1.col_values(0)
    type = worksheet1.col_types(0)
    valuesl = worksheet1.col_slice(0)
    
    print(cols)
    print("----------------------")
    print(value)
    print("----------------------")
    print(type)
    print("----------------------")
    print(valuesl)
    

    在这里插入图片描述

    3.3单元格操作

    ①获取单元格数据对象。 sheet.cell(rowx,colx)类型为xlrd.sheet.Cell

    ②获取单元格类型。Sheet.cell_type(rowx,colx)

    单元类型ctype:empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值);

    ③获取单元格数据。

    Sheet.cell_value(rowx,colx)

    3.4对单元格中的日期/时间操作

    单元类型ctype:empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值);

    ①xlrd.xldate_as_tuple()

    “{}-{:0>2}-{:0>2}”.format(date[0],date[1],date[2])

    ②xlrd.xldate_as_datetime(value,mode).strftime(“%Y-%m-%d”)

    workbook = xlrd.open_workbook("C:\\Users\li\Desktop\测试用例.xlsx")
    import datetime
    
    sheet2_object = workbook.sheet_by_index(0)
    value_type = sheet2_object.cell(0, 1).ctype
    value_type = sheet2_object.cell_value(1, 4)
    
    data = xlrd.xldate.xldate_as_datetime(value_type,0)
    print(data.strftime("%Y-%m-%d"))
    
    date = xlrd.xldate.xldate_as_tuple(value_type,0)
    print("{}-{:0>2}-{:0>2}".format(date[0],date[1],date[2]))
    

    在这里插入图片描述

    jsjbwy
    下一篇:没有了