Python 下 Excel 的读取与写入

前言

前段时间需要将 MySql 的数据导出到指定格式的 Excel 表格中去,由于是基于 Python3.5 的程序,所以最后选定了 xlrd 库来进行 Excel 的读取操作,写入操作则由 xlsxwriterxlutils 库来进行,其中 xlutils 用于对 Excel 文件的追加。

Excel 文件的读取

  1. 打开 Excel 文件
    workbook = xlrd.open_workbook(r'查询条件.xlsx')
  2. 获取所有 sheet
    workbook.sheet_names()
  3. 根据sheet索引或者名称获取 sheet 内容
    sheet1 = workbook.sheet_by_index(0) # sheet索引从0开始
    sheet1 = data.sheet_by_name(u'Sheet1')#通过名称获取
  4. 获取 sheet1 的行数
    sheet1.nrows
  5. 获取 sheet1 的列数
    sheet1.ncols
  6. 获取指定行列的值
    sheet1.row(row)[col].value

Excel 文件的写入追加

  1. 创建 Excel 文件
    workbook = xlsxwriter.Workbook(year + title + ".xls")
  2. 增加 Sheet
    worksheet = workbook.add_worksheet()
  3. 写入数据

    1
    2
    3
    4
    worksheet.write('A1', 'tag')
    worksheet.write('B1', '文章名字')
    sheet_write.write(rows, 0, "1")
    workbook.close()
  4. 追加数据
    追加之前需要将 xlutils.copy 导入到工程中,首先用 xlrd 打开旧的 Excel 文件,然后利用 xlutils.copy 中的 copy() 方法复制已经存在的数据,最终在原有数据的基础上进行写入。具体代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #导入模块
    from xlutils.copy import copy
    #打开文件
    resultwork = xlrd.open_workbook(year + title + ".xls")
    #获取行数
    sheet1 = resultwork.sheet_by_index(0)
    rows = sheet1.nrows
    #追加数据,保存
    old_excel = copy.copy(resultwork)
    sheet_write = old_excel.get_sheet(0)
    sheet_write.write(rows, 0, "1")
    old_excel.save(year + title + ".xls")


参考资料

  1. xlsxwriter 文档
  2. Python中使用第三方库xlutils来追加写入Excel文件示例