python对excel操作有主要有以下第三方库支持:
xlwings:简单强大,可替代VBA
openpyxl:简单易用,功能广泛
pandas:使用需要结合其他库,数据处理是pandas立身之本
win32com:不仅仅是excel,可以处理office;
Xlsxwriter:丰富多样的特性,直接创造一份美观大方的excel,代码即一切;
DataNitro:作为插件内嵌到excel中,可替代VBA,在excel中优雅的使用python
xlutils:结合xlrd/xlwt,老牌python包,需要注意的是你必须同时安装这三个库
在这里介绍一下xlutils/xlrd/xlwt。
读取
import xlrd workbook = xlrd.open_workbook(r'C:\Users\thinkpad\Desktop\dd.xlsx')#打开excel文件 print('number:',workbook.nsheets)#有几张表 print('name:',workbook.sheet_names())#['Sheet1', 'Sheet2', 'Sheet3'] worksheet=workbook.sheet_by_index(0)#取第一张表 print('table %s 共%s 行 %s列' %(worksheet.name,worksheet.nrows,worksheet.ncols))#table Sheet1 共4 行 2列 print('第2行第1列:',worksheet.cell_value(1,0))#第2行第1列: 马云 for s in workbook.sheets(): for r in range(s.nrows): print(s.row(r))#[text:'马云', number:52.0]
写入
import xlwt wb = xlwt.Workbook()#创建一个excel文件 sh = wb.add_sheet('a test sheet')#创建一张表 sh.write(0,0,'武松')#第1行第1列写入武松 sh.write(1,0,'鲁智深') sh.write(2,0,'林冲') wb.save('example.xls')#保存
修改
from xlutils.copy import copy from xlrd import open_workbook rb = open_workbook('example.xls') wb = copy(rb)#拷贝一份 s = wb.get_sheet(0) s.write(0,1,'new data') wb.save('example.xls')#保存