xlrd、xlwt、xlutils库最全使用教程

    科技2022-07-14  163

    目录

    安装库xlrd ,xlwt(anaconda 自带,无需安装)安装xlutils(anaconda 不包含这个库)数据xlrdxlwt使用xlutils 往已有的excel文件中追加数据

    安装库xlrd ,xlwt(anaconda 自带,无需安装)

    pip install xlrd pip install xlws

    安装xlutils(anaconda 不包含这个库)

    pip install xlutils

    数据

    表1 表2

    xlrd

    (1) 打开excel文件并获取所有sheet表名称

    import xlrd # 打开Excel文件读取数据 data = xlrd.open_workbook('E:\\PythonProject\\programming3\\test2.xlsx') sheetName = data.sheet_names() # 获取所有sheet名称 print(sheetName) # ['表1', '表2']

    (2) 根据下标获取sheet名称

    # 根据下标获取sheet名称 sheet2Name = data.sheet_names()[1] print(sheet2Name) # '表2'

    (3) 根据sheet索引或者名称获取sheet内容,同时获取sheet名称、行数、列数

    # 根据sheet索引或者名称获取sheet内容,同时获取sheet名称、列数、行数 sheet2 = data.sheet_by_index(1) print('sheet2名称:{}\nsheet2列数: {}\nsheet2行数: {}'.format(sheet2.name, sheet2.ncols, sheet2.nrows)) # sheet2名称:表2 # sheet2列数: 6 # sheet2行数: 3 sheet1 = data.sheet_by_name('表1') print('sheet1名称:{}\nsheet1列数: {}\nsheet1行数: {}'.format(sheet1.name, sheet1.ncols, sheet1.nrows)) # sheet1名称:表1 # sheet1列数: 6 # sheet1行数: 7

    (4) 根据sheet名称获取整行和整列的值

    # 根据sheet名称获取整行和整列的值 sheet1 = data.sheet_by_name('表1') print(sheet1.row_values(3)) # ['0003', '貂蝉', '女', 43923.0, 50.0, 500.0] print(sheet1.col_values(4)) #['武力值', 400.0, 350.0, 50.0, 500.0, 450.0, 200.0]

    (5)获取指定单元格的内容(3种方法)

    # 获取指定单元格的内容 print(sheet1.cell(1,0).value) # 第2 行1列内容 print(sheet1.cell_value(1,0)) # 第2 行1列内容 print(sheet1.row(1)[0].value) # 第2 行1列内容

    (6)获取单元格内容的数据类型

    # 获取单元格内容的数据类型 print(sheet1.cell(1,0).ctype) print(sheet1.cell(3,4).ctype) print(sheet1.cell(3,5).ctype)

    (7)获取单元内容为日期类型的方式 使用xlrd的xldate_as_tuple处理为date格式

    from datetime import datetime,date print(sheet1.cell(3, 6).value) # 41463.0 date_value = xlrd.xldate_as_tuple(sheet1.cell(3, 6).value,data.datemode) print(date_value) # (2013, 7, 8, 0, 0, 0) print(date(*date_value[:3])) # 2013-07-08 print(date(*date_value[:3]).strftime('%Y/%m/%d')) # 2013/07/08

    (8)获取单元内容为number的方式(转为整型)

    print(sheet1.cell(3, 5).value) # 133111.0 num_value = int(sheet1.cell(3, 5).value) print(num_value) # 133111

    xlwt

    注:只能用于.xls文件

    使用xlutils 往已有的excel文件中追加数据

    注:扩展名必须为xls

    import xlwt from xlrd import open_workbook from xlutils.copy import copy rb = open_workbook("E:\\PythonProject\\programming3\\test2.xls", formatting_info=True) w = copy(rb) a=['0008','李四','男','2020/12/3',100,1000] sheeettt= w.get_sheet(0) for i in range(0,6): sheeettt.write(9,i,a[i]) w.save("E:\\PythonProject\\programming3\\test2.xls")
    Processed: 0.019, SQL: 8