Python 下 Excel 的读取与写入
前言
前段时间需要将 MySql 的数据导出到指定格式的 Excel 表格中去,由于是基于 Python3.5 的程序,所以最后选定了 xlrd
库来进行 Excel 的读取操作,写入操作则由 xlsxwriter
和 xlutils
库来进行,其中 xlutils
用于对 Excel 文件的追加。
Excel 文件的读取
- 打开 Excel 文件
workbook = xlrd.open_workbook(r'查询条件.xlsx')
- 获取所有 sheet
workbook.sheet_names()
- 根据sheet索引或者名称获取 sheet 内容
sheet1 = workbook.sheet_by_index(0) # sheet索引从0开始
sheet1 = data.sheet_by_name(u'Sheet1')#通过名称获取
- 获取
sheet1
的行数
sheet1.nrows
- 获取
sheet1
的列数
sheet1.ncols
- 获取指定行列的值
sheet1.row(row)[col].value
Excel 文件的写入追加
- 创建 Excel 文件
workbook = xlsxwriter.Workbook(year + title + ".xls")
- 增加 Sheet
worksheet = workbook.add_worksheet()
写入数据
1
2
3
4worksheet.write('A1', 'tag')
worksheet.write('B1', '文章名字')
sheet_write.write(rows, 0, "1")
workbook.close()追加数据
追加之前需要将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")
参考资料
- xlsxwriter 文档
- Python中使用第三方库xlutils来追加写入Excel文件示例