从网页爬下来的大量数据须要清洗?
python
成堆的科学实验数据须要导入 Excel 进行分析?程序员
有成堆的表格等待统计?编程
做为人生苦短的 Python 程序员,该如何优雅地操做 Excel?windows
得益于前人的辛勤劳做,Python 处理 Excel 已有不少现成的轮子,使用较多的有:api
xlwingsapp
提醒及注意:性能
因为设计目的不一样,每一个模块一般着重于某一方面功能,各有所长。
ui
xlwings spa
可结合 VBA 实现对 Excel 编程,强大的数据输入分析能力,同时拥有丰富的接口,结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工做。
简单易用,功能普遍,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点,缺点是对 VBA 支持的不够好。
数据处理是 pandas 的立身之本,Excel 做为 pandas 输入/输出数据的容器。
基于 xlrd/xlwt,老牌 python 包,算是该领域的先驱,功能特色中规中矩,比较大的缺点是仅支持 xls 文件。
经过以上的分析,相信你们对几个库都有了简单的了解。在编写文章的过程当中,笔者也在思考各个库最适合的应用场景。
你可根据本身的需求和生产环境,选择合适的 Python-Excel 模块。
import xlwings as xw #链接到excel workbook = xw.Book(r'path/myexcel.xlsx')#链接excel文件 #链接到指定单元格 data_range = workbook.sheets('Sheet1').range('A1') #写入数据 data_range.value = [1,2,3] #保存 workbook.save() 复制代码
import xlsxwriter as xw #新建excel workbook = xw.Workbook('myexcel.xlsx') #新建工做薄 worksheet = workbook.add_worksheet() #写入数据 worksheet.wirte('A1',1) #关闭保存 workbook.close() 复制代码
6.3 xlutils基本代码import xlrd #读取数据
import xlwt #写入数据 import xlutils #操做excel #----xlrd库 #打开excel文件 workbook = xlrd.open_workbook('myexcel.xls') #获取表单 worksheet = workbook.sheet_by_index(0) #读取数据 data = worksheet.cell_value(0,0) #----xlwt库 #新建excel wb = xlwt.Workbook() #添加工做薄 sh = wb.add_sheet('Sheet1') #写入数据 sh.write(0,0,'data') #保存文件 wb.save('myexcel.xls') #----xlutils库 #打开excel文件 book = xlrd.open_workbook('myexcel.xls') #复制一份 new_book = xlutils.copy(book) #拿到工做薄 worksheet = new_book.getsheet(0) #写入数据 worksheet.write(0,0,'new data') #保存 new_book.save() 复制代码
import win32com.client as wc #启动Excel应用 excel_app = wc.Dispatch('Excel.Application') #链接excel workbook = excel_app.Workbooks.Open(r'e:/myexcel.xlsx' ) #写入数据 workbook.Worksheets('Sheet1').Cells(1,1).Value = 'data' #关闭并保存 workbook.SaveAs('newexcel.xlsx') excel_app.Application.Quit() 复制代码