xlrd库一般用于读取excel文件中的数据;

xlwt库用于将数据写入excel文件;

xlutils库通过复制一个副本文件进行操作后保存一个新文件,通过copy模块将xlrd.Book对象转换为xlwt.Workbook对象,从而实现了原始excel文件的编辑功能。 PS:一般如果数据量不是很大可以用这3个库完成读写更新,如果数据量很大直接用pandas库

2.读取数据

1)库的安装 pip install xlrd

2)支持xlsx、xls格式的excel表格

3)操作步骤:

  • 打开工作薄(Workbook)
  • 选择工作表(sheets)
  • 操作单元格(cell)
  • import xlrd
    # 读取表格数据
    wd = xlrd.open_workbook("D:\my_project\up_ver_sn_V1.xlsx")
    # 通过名称获取
    sheet = wd.sheet_by_name("off") 
    # 获取行数
    rows = sheet.nrows
    # 获取列数
    cols = sheet.ncols
    # 获取具体某一整行数据
    rowData = sheet.row_values(** **行索引号** **)
    # 获取具体某一整列数据
    colDate = sheet.col_values(** **列索引号** **)
    # 通过循环读取表格的所有行
    for i in range(0, rows):
        print(sheet.cell_value(i, 2))# 打印具体某一单元格数据
    # 获取单元格的值
    a = sheet.row(0)[0]
    a = sheet.cell(0,0)
    a = sheet.col(0)[0]
    

    3.写数据

    1)库的安装 pip install xlwt

    2)操作步骤:

  • 新建工作薄(Workbook)
  • 添加工作表(add_sheet)
  • 写入数据(write)
  • 保存工作薄(save)
  • 3)创建样式:

    #初始化样式
    style=xlwt.XFStyle()
    #为样式创建字体
    font=xlwt.Font() 
    #指定字体名字
    font.name='Times New Roman' 
    #字体加粗
    font.bold=True
    #将该font设定为style的字体
    style.font=font 
    #写入到文件时使用该样式
    sheet.write(0,1,'XXXx',style)
    
    import xlwt
    # 创建Excel文件对象、表格页sheet
    workbook = xlwt.Workbook(encoding='utf-8')
    worksheet = workbook.add_sheet('sheet名称')
    # sheet页中写入表头
    worksheet.write(0, 0, label='key')
    worksheet.write(0, 1, label='value')
    #写入具体内容
    worksheet.write(1, 0, label='XXXX')
    worksheet.write(1, 1, label='YYYY')
    # 保存Excel文件
    workbook.save(file_name)
    

    4.更新数据

    1)库的安装 pip install xlutils

    2)操作步骤:

  • 打开需要更改的excel(Workbook)
  • 将操作文件对象拷贝,变成workbook对象(copy)
  • 获取工作表(sheet)
  • 写入更新数据(write)
  • 保存工作薄(save)
  • 3)注意点 formatting_info默认为False,改成True可以将表格的格式、规则、宏等带过来 但是如果文件为xlsx格式时,formatting_info=True会抛出异常,而读取xls类型的文件时不存在此问题。

    解决方式: 修改xlsx为xls(推荐)

    import xlrd
    import xlwt
    from xlutils.copy import copy
    # 打开想要更改的excel文件
    old_excel = xlrd.open_workbook('test.xlsx', formatting_info=True)
    # 将操作文件对象拷贝,变成可写的workbook对象
    new_excel = copy(old_excel)
    # 获得第一个sheet的对象
    ws = new_excel.get_sheet(0)
    # 写入数据
    ws.write(0, 0, '第一行,第一列')
    ws.write(0, 1, '第一行,第二列')
    ws.write(0, 2, '第一行,第三列')
    ws.write(1, 0, '第二行,第一列')
    ws.write(1, 1, '第二行,第二列')
    ws.write(1, 2, '第二行,第三列')
    # 另存为excel文件,并将文件命名,可以重新命名,也可以覆盖掉
    new_excel.save('test.xlsx')
    复制代码
    分类:
    后端
    标签: