Python对Excel的操作
Python几个读取Excel库的介绍:
xlwings
可结合 VBA 实现对 Excel 编程,强大的数据输入分析能力,同时拥有丰富的接口,结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工作。
openpyxl
简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点,缺点是对 VBA 支持的不够好。
pandas
数据处理是 pandas 的立身之本,Excel 作为 pandas 输入/输出数据的容器。
win32com
从命名上就可以看出,这是一个处理 windows 应用的扩展,Excel 只是该库能实现的一小部分功能。该库还支持 office 的众多操作。需要注意的是,该库不单独存在,可通过安装 pypiwin32 或者 pywin32 获取。
xlsxwriter
拥有丰富的特性,支持图片/表格/图表/筛选/格式/公式等,功能与openpyxl相似,优点是相比 openpyxl 还支持 VBA 文件导入,迷你图等功能,缺点是不能打开/修改已有文件,意味着使用 xlsxwriter 需要从零开始。
DataNitro
作为插件内嵌到 Excel 中,可完全替代 VBA,在 Excel 中使用 python 脚本。既然被称为 Excel 中的 python,协同其他 python 库亦是小事一桩。然而,这是付费插件...
xlutils
基于 xlrd/xlwt,老牌 python 包,算是该领域的先驱,功能特点中规中矩,比较大的缺点是仅支持 xls 文件。
安装
pip install xlutils
读取
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')#保存