Python读写Excel文件第三方库汇总,你想要的都在这儿!,微信文件第三方打开

---恢复内容开始---

常见库简介

xlrd

xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件。

http://xlrd.readthedocs.io/en/latest/

1、xlrd支持.xls,.xlsx文件的读

2、通过设置on_demand变量使open_workbook()函数只加载那些需要的sheet,从而节省时间和内存(该方法对.xlsx文件无效)。

3、xlrd.Book对象有一个unload_sheet方法,它将从内存中卸载工作表,由工作表索引或工作表名称指定(该方法对.xlsx文件无效)

xlwt

xlwt是一个用于将数据和格式化信息写入旧Excel文件的库(如.xls)。

https://xlwt.readthedocs.io/en/latest/

1、xlwt支持.xls文件写。

xlutils

xlutils是一个处理Excel文件的库,依赖于xlrd和xlwt。

http://xlutils.readthedocs.io/en/latest/

1、xlutils支持.xls文件。

2、支持Excel操作。

xlwings

xlwings是一个可以实现从Excel调用Python,也可在python中调用Excel的库。

http://docs.xlwings.org/en/stable/index.html

1、xlwings支持.xls读,支持.xlsx文件读写。

2、支持Excel操作。

3、支持VBA。

4、强大的转换器可以处理大部分数据类型,包括在两个方向上的numpy array和pandas DataFrame。

openpyxl

openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。小编整理一套Python资料和PDF,有需要Python学习资料可以加学习群:631441315 ,反正闲着也是闲着呢,不如学点东西啦~~

https://openpyxl.readthedocs.io/en/stable/

1、openpyxl支持.xlsx文件的读写。

2、支持Excel操作。

3、加载大.xlsx文件可以使用read_only模式。

4、写入大.xlsx文件可以使用write_only模式。

xlsxwriter

xlsxwriter是一个用于创建Excel .xlsx文件的库。

https://xlsxwriter.readthedocs.io/

1、xlswriter支持.xlsx文件的写。

2、支持VBA。

3、写入大.xlsx文件时使用内存优化模式。

win32com

win32com库存在于pywin32中,是一个读写和处理Excel文件的库。

http://pythonexcels.com/python-excel-mini-cookbook/

1、win32com支持.xls,.xlsx文件的读写,支持.xlsx文件的写。

2、支持Excel操作。

DataNitro

DataNitro是一个内嵌在Excel中的插件。

https://datanitro.com/docs/

1、DataNitro支持.xls,.xlsx文件的读写。

2、支持Excel操作。

3、支持VBA。

4、收费

pandas

pandas通过对Excel文件的读写实现数据输入输出

http://pandas.pydata.org/

1、pandas支持.xls,.xlsx文件的读写。

2、支持只加载每个表的单一工作页。

环境配置及可实现操作

注:DataNitro作为插件使用需依托软件本身。

参考:https://zhuanlan.zhihu.com/p/23998083

读写测试

测试计算机硬件和系统

电脑型号 微星 MS-7846 台式电脑

操作系统 Windows 7 旗舰版 64位 SP1 ( DirectX 11 )

处理器 英特尔 Pentium(奔腾) G3260 @ 3.30GHz 双核

主板 微星 H81M-P32L (MS-7846) ( 英特尔 Haswell - Lynx Point )

内存 4 GB ( 金士顿 DDR3 1600MHz )

主硬盘 西数 WDC WD5000AZLX-00ZR6A0 ( 500 GB / 7200 转/分 )

显卡 英特尔 Haswell Integrated Graphics Controller ( 256 MB / 微星 )

测试用例

用例1. 读.xls文件的整个表(表有5个分页,每个分页有2000行1200列的整数)。

用例2. 读.xlsx文件的整个表(表有5个分页,每个分页有2000行1200列的整数)。

用例3. 读.xls文件的整个表(表有1个分页,页有2000行1200列的整数)。

用例4. 读.xlsx文件的整个表(表有1个分页,页有2000行1200列的整数)。

用例5. 写.xls文件的整个表(表有5个分页,每个分页有2000行1200列的整数)。

用例6. 写.xlsx文件的整个表(表有5个分页,每个分页有2000行1200列的整数)。

用例7. 写.xls文件的整个表(表有1个分页,页有2000行1200列的整数)。

用例8. 写.xlsx文件的整个表(表有1个分页,页有2000行1200列的整数)。

测试结果

注1.xlwt和pandas每个工作页最多写入256列,因此测试用例修改为每页有2000行256列的整数.

注2.xlutils读写依赖于xlrd和xlwt,不单独测试。

注3.openpyxl测试两种模式,一是普通加载写入,二是read_only/write_only模式下的加载写入。

注4.DataNitro要收费,且需依托Excel使用,本次不测试。

读写性能比较

单从读写的性能上考虑,win32com的性能是最好的,xlwings其次。

openpyxl虽然操作Excel的功能强大,但读写性能过于糟糕,尤其是写大表时,会占用大量内存(把我的4G内存用完了),开启read_only和write_only模式后对其性能有大幅提升,尤其是对读的性能提升很大,使其几乎不耗时(0.01秒有点夸张,不过确实是加载上了)。pandas把Excel当作数据读写的容器,为其强大的数据分析服务,因此读写性能表现中规中矩,但其对Excel文件兼容性是最好的,支持读写.xls,.xlsx文件,且支持只读表中单一工作页。同样支持此功能的库还有xlrd,但xlrd只支持读,并不支持写,且性能不突出,需要配合xlutils进行Excel操作,并使用xlwt保存数据,而xlwt只能写入.xls文件(另一个可以写入.xls文件的库是pandas,且这两个写入的Excel文件最多只能有256列,其余库就我目前的了解均只能写入.xlsx文件),性能一般。xlsxwriter功能单一,一般用来创建.xlsx文件,写入性能中庸。win32com拥有最棒的读写性能,但该库存在于pywin32的库中,自身没有完善的文档,使用略吃力。xlwings拥有和win32com不相伯仲的读写性能,强大的转换器可以处理大部分数据类型,包括二维的numpy array和pandas DataFrame,可以轻松搞定数据分析的工作。

综合考虑,xlwings的表现最佳,正如其名,xlwings——Make Excel Fly!

便捷性比较

本测试目前只是针对Excel文件的读写,并未涉及Excel操作,单从读写的便捷性来讲,各库的表现难分上下,但是win32com和xlwings这两个库可以在程序运行时实时在打开的Excel文件中进行操作,实现过程的可视化,其次xlwings的数据结构转换器使其可以快速的为Excel文件添加二维数据结构而不需要在Excel文件中重定位数据的行和列,因此从读写的便捷性来比较,仍是xlwings胜出。

测试代码

计时

importtimeitif __name__ == '__main__':#使用timeit计时

t = timeit.Timer('??()', setup='from __main__ import ??')print(t.timeit(number=1))

xlrd

importxlrddeftest_xlrd_on_demand_false():#f = xlrd.open_workbook('test_cases\\read_xls.xls', on_demand=False)

f = xlrd.open_workbook('test_cases\\read_xlsx.xlsx', on_demand=False)deftest_xlrd_on_demand_true():#f = xlrd.open_workbook('test_cases\\read_xls.xls', on_demand=True)

f = xlrd.open_workbook('test_cases\\read_xlsx.xlsx', on_demand=True)

f.sheet_by_index(0)

xlwt

importxlwt

book=xlwt.Workbook()deftest_xlwt():for s in range(5):

sheet=book.add_sheet(str(s))for i in range(2000):for j in range(256):

sheet.write(i, j,65536)

book.save('test_cases\\write_xls.xls')

xlwings

importxlwingsdeftest_xlwings_read():#f = xlwings.Book('test_cases\\read_xls.xls')

f = xlwings.Book('test_cases\\read_xlsx.xlsx')importnumpy as np

f= xlwings.Book('')

d= np.zeros([2000, 1200])

d+= 65536

deftest_xlwings_write():for s in range(1):

sheet=f.sheets.add()

sheet.range('A1').value =d

f.save('test_cases\\write_xlsx.xlsx')

openpyxl

importopenpyxldeftest_openpyxl_read():

f= openpyxl.load_workbook('test_cases\\read_xlsx.xlsx', read_only=True)

c= [65536] * 1200f= openpyxl.Workbook(write_only=True)deftest_openpyxl_write():for i in range(1):

sheet= f.create_sheet(title=str(i))for row in range(2000):

sheet.append(c)

f.save('test_cases\\write_xlsx.xlsx')

xlsxwriter

importxlsxwriter

workbook= xlsxwriter.Workbook('test_cases\\write_xlsx.xlsx')deftest_xlsxwriter():for s in range(1):

worksheet=workbook.add_worksheet()for i in range(2000):for j in range(1200):

worksheet.write(i, j,65536)

workbook.close()

win32com

importwin32com.client as win32

excel= win32.gencache.EnsureDispatch('Excel.Application')deftest_win32com_read():#wb = excel.Workbooks.Open('E:\\excel\\test_cases\\read_xls.xls')

wb = excel.Workbooks.Open('E:\\excel\\test_cases\\read_xlsx.xlsx')#excel.Visible = True

wb=excel.Workbooks.Add()deftest_win32com_write():for i in range(1):

ws=wb.Worksheets.Add()

ws.Range("A1:ATD2000").Value = 65536wb.SaveAs('E:\\excel\\test_cases\\write_xlsx.xlsx')

excel.Application.Quit()

pandas

importpandas as pddeftest_pandas_read():for i in range(1, 6):

sheet_name= "Sheet" +str(i)#df = pd.read_excel('test_cases\\read_xls.xls', sheet_name)

df = pd.read_excel('test_cases\\read_xlsx.xlsx', sheet_name)importnumpy as np

d= np.zeros([2000, 255])

d+= 65536df=pd.DataFrame(d)#writer = pd.ExcelWriter('test_cases\\write_xls.xls')

writer = pd.ExcelWriter('test_cases\\write_xlsx.xlsx')deftest_pandas_write():

df.to_excel(writer,'Sheet1')

df.to_excel(writer,'Sheet2')

df.to_excel(writer,'Sheet3')

df.to_excel(writer,'Sheet4')

df.to_excel(writer,'Sheet5')

writer.save()

---恢复内容结束---

python excel 微信_Python读写Excel文件第三方库汇总,你想要的都在这儿!,微信文件第三方打开...相关推荐

  1. python读写excel表格_Python读写Excel表格(简单实用)

    首先安装两个库:pip install xlrd.pip install xlwt! 1.python读excel--xlrd2.python写excel--xlwt 1.读excel数据,包括日期等 ...

  2. python读excel乱码_Python读写excel练习_去除excel中乱码行,并添加列

    需求: 把app_student.xls里面的数据, 1.如果这一行数据里面有乱码(及包含?),那么就删掉 2.再加上一列,是否毕业 3.如果班级是天蝎座的话,毕业这一列写成毕业 4.其他班级的写成未 ...

  3. python处理office文件的第三方库_Python读写Excel文件第三方库汇总,你想要的都在这儿!...

    Python Python开发 Python语言 Python读写Excel文件第三方库汇总,你想要的都在这儿! ---恢复内容开始--- 常见库简介 xlrd xlrd是一个从Excel文件读取数据 ...

  4. python导入excel文件-python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  5. Python使用openpyxl模块读写excel文件

    Python使用openpyxl模块读写excel文件 openpyxl是一个用于写入和读取xlsx格式的excel文件的Python模块. excel2010后的后缀名为xlsx,不再是xls,使用 ...

  6. iOS 第三方库汇总(超全!!!!)

    图像: 1.图片浏览控件MWPhotoBrowser  实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...

  7. python中读写excel的扩展库_Python读写Excel文件第三方库汇总,你想要的都在这儿!...

    常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. http://xlrd.readthedocs.io/en/latest/ 1.xlrd ...

  8. python写入excel公式有哪些库_Python读写Excel文件第三方库汇总,你想要的都在这儿!...

    常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. http://xlrd.readthedocs.io/en/latest/ 1.xlrd ...

  9. python与excel常用的第三方库_Python读写Excel文件第三方库汇总

    常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. http://xlrd.readthedocs.io/en/latest/ 1.xlrd ...

  10. python读取python源代码文件_python 读写excel文件操作示例【附源码下载】

    本文实例讲述了python 读写excel文件操作.分享给大家供大家参考,具体如下: 对excel文件的操作,python有第三方的工具包支持,xlutils,在这个工具包中包含了xlrd,xlwt等 ...

最新文章

  1. MySQL必知必会教程:深入理解MySQL技术内幕
  2. 矩阵存储 oracle表,二种矩阵存储方式汇总比较
  3. Kubernetes入门指南
  4. 《Reids 设计与实现》第十三章 Sentinel
  5. python中capital是什么意思_capital是什么意思_capital的翻译_音标_读音_用法_例句_爱词霸在线词典...
  6. 面向对象编程引入“人狗大战”小游戏
  7. 不一样的Office 365之 —— 使用Delve查看热门文档
  8. 使用电脑开发的,连个黑屏休眠都不会设置?
  9. 粒子群优化算法(PSO)
  10. Docker镜像使用详解
  11. N点虚拟主机管理系统 企业版稳定亲测
  12. 怎么删除win10 C盘Hiberfil.sys文件,Hiberfil.sys文件删了有没有事?
  13. php8网站,教你从零搭建php8环境
  14. 车道线识别(一) 简单识别
  15. java中jar包怎么下载
  16. 经典网络命令(搜集、概括)
  17. java dump文件分析
  18. 史上最完美的 Typora 教程
  19. 【报表开发】:BI---新视界---请休假个人报表
  20. tim工具包-task 定时任务调度中心 分布式可配置v1.3.0版本

热门文章

  1. 如何获取免费的数字货币历史数据
  2. 关于二进制的起源,莱布尼茨以及中国伏羲八卦图
  3. 鸿蒙os beta3.0怎么升级,鸿蒙系统 2.0 Beta3.0版本更新详解
  4. python写的平行四边形_实现一个平行四边形
  5. html5+开启摄像头,双摄像头时如何通过html5选择打开哪个摄像头_沃航科技
  6. 从2009到2020,世界编程语言排行榜分析
  7. linux wps只读模式怎么取消,wps只读模式解除的两种方法
  8. IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备
  9. Period、Duration计算时间间隔
  10. 正则表达式高级用法: 分组