Python

Python开发

Python语言

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、支持只加载每个表的单一工作页。

环境配置及可实现操作

读写测试

测试计算机硬件和系统

电脑型号 微星 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处理office文件的第三方库_Python读写Excel文件第三方库汇总,你想要的都在这儿!...相关推荐

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

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

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

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

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

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

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

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

  5. python基础教程 excel_python基础教程 excel-python怎么读写excel文件

    excel和python哪个难学 excel 分应用和VBA编程,phthon本就是编程语言,对数据分析来说,excel足够了,而且是最容易学习的数据处理与分析应用软件,Python肯定比excel难 ...

  6. python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据

    在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...

  7. 用python处理excel文件_python 读写 Excel文件

    一.用xlrd和xlwt读写excel 首先下载安装xlrd和xlwt这两个库. 1.打开excel readbook = xlrd.open_workbook(r'\test\canying.xls ...

  8. python读取xlsm文件_Python读写EXCEL文件常用方法大全

    前言 python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式. 数据准备 为了方便演示,我这里新建了一个data.xls和data.xlsx文件,第一个 ...

  9. python读写xlsx文件_python读写Excel文件--使用xlrd模块读取,xlwt模块写入

    一.安装xlrd模块和xlwt模块 1. 下载xlrd模块和xlwt模块 到python官网http://pypi.python.org/pypi/xlrd下载模块.下载的文件例如:xlrd-0.9. ...

最新文章

  1. rabbitmq相关开源代码c
  2. ubuntu下如何切换输入法
  3. 【若依(ruoyi)】Bootstrap-Table的使用
  4. js判断url链接是否可访问(服务可连接,可用)
  5. 面试题,你是如何评判产品改版后的效果的?
  6. 提高篇 第四部分 数据结构 第2章 RMQ问题
  7. linux怎样禁止他人远程,linux禁止用户远程登录的方法
  8. CEO 职位也不保,盘点 2017 年 IT 界残酷的裁员事件
  9. C/C++ 的全缓冲、行缓冲和无缓冲
  10. 标签用什么数据结构存比较好_结婚喝什么白酒比较好,婚宴白酒用什么价位的比较好...
  11. 史上最全科研网站!!!
  12. eclipse怎么恢复默认界面
  13. 51单片机仿真设计项目大全
  14. python模拟登陆微博_超详细的Python实现微博模拟登陆,小白都能懂
  15. 家谱制作软件如何成谱编修流程
  16. python之禅怎么读_混为一谈的读音
  17. linux给目录分配空间,Linux 分配/home的磁盘空间给根目录
  18. 《软技能》读书笔记——生产力篇
  19. 采集豆瓣“我看过的电影” 整合到wordpress_wordpress豆瓣插件
  20. 【通讯原理】Ch.4:数字信号调制

热门文章

  1. 最早的java农场有四季_准备java做农场
  2. 在PHP中,通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。如果要转换文件大小的单位,可以自己定义函数来实现。
  3. 开发一个chrome插件:将百度搜索热点屏蔽掉!
  4. 恋舞ol服务器维护中,《恋舞OL》例行维护公告
  5. 关于opencv打开摄像头成灰色问题的原因
  6. 十年辗转4厂,百场校、社招面试后,我想给“后生仔”分享的一些秘密!
  7. 各种乘法的区别 “点积、外积、数乘...等
  8. WordPress Gutenberg Block API:块外观
  9. offline.appcache,html5缓存清单文件简单说明
  10. Kademlia协议原理简介V1.1