我有一个Excel电子表格,需要每天导入到SQL Server中。电子表格将包含大约250000行,大约50列。我使用几乎相同的代码分别使用openpyxl和xlrd进行了测试。

下面是我正在使用的代码(减去调试语句):import xlrd

import openpyxl

def UseXlrd(file_name):

workbook = xlrd.open_workbook(file_name, on_demand=True)

worksheet = workbook.sheet_by_index(0)

first_row = []

for col in range(worksheet.ncols):

first_row.append(worksheet.cell_value(0,col))

data = []

for row in range(1, worksheet.nrows):

record = {}

for col in range(worksheet.ncols):

if isinstance(worksheet.cell_value(row,col), str):

record[first_row[col]] = worksheet.cell_value(row,col).strip()

else:

record[first_row[col]] = worksheet.cell_value(row,col)

data.append(record)

return data

def UseOpenpyxl(file_name):

wb = openpyxl.load_workbook(file_name, read_only=True)

sheet = wb.active

first_row = []

for col in range(1,sheet.max_column+1):

first_row.append(sheet.cell(row=1,column=col).value)

data = []

for r in range(2,sheet.max_row+1):

record = {}

for col in range(sheet.max_column):

if isinstance(sheet.cell(row=r,column=col+1).value, str):

record[first_row[col]] = sheet.cell(row=r,column=col+1).value.strip()

else:

record[first_row[col]] = sheet.cell(row=r,column=col+1).value

data.append(record)

return data

xlrd_results = UseXlrd('foo.xls')

openpyxl_resuts = UseOpenpyxl('foo.xls')

传递包含3500行的同一个Excel文件会产生截然不同的运行时间。使用xlrd我可以在2秒内将整个文件读入字典列表。使用openpyxl可以得到以下结果:Reading Excel File...

Read 100 lines in 114.14509415626526 seconds

Read 200 lines in 471.43183994293213 seconds

Read 300 lines in 982.5288782119751 seconds

Read 400 lines in 1729.3348784446716 seconds

Read 500 lines in 2774.886833190918 seconds

Read 600 lines in 4384.074863195419 seconds

Read 700 lines in 6396.7723388671875 seconds

Read 800 lines in 7998.775000572205 seconds

Read 900 lines in 11018.460735321045 seconds

虽然我可以在最后的脚本中使用xlrd,但由于各种问题(即int读作float,date读作int,datetime读作float),我将不得不硬编码许多格式。由于我需要为更多的导入重用此代码,因此尝试硬编码特定列以正确格式化它们是没有意义的,并且必须在4个不同的脚本中维护类似的代码。

对如何进行有什么建议吗?

python xlrd读取excel慢_与xlrd相比,使用openpyxl读取Excel文件要慢很多相关推荐

  1. python读取mysql数据_如何将mysql的数据读取python

    展开全部 本文实例为大家2113分享了Python读取MySQL数据库表数据的具体代码,5261供大家参考,具体内容4102如下 环境:Python 3.6 ,Window 64bit 目的:1653 ...

  2. python打造excel神器_再见 VBA!神器工具统一 Excel 和 Python

    你们好,我是东哥.html 常常给你们推荐好用的数据分析工具,也收到了铁子们的各类好评.此次也不例外,我要再推荐一个,并且是个爆款神器.python Excel和Jupyter Notebok都是我天 ...

  3. python写入excel怎么跨列居中_Python使用OpenPyXL处理Excel表格

    官方文档: http://openpyxl.readthedocs.io/en/default/ OpenPyXL库 --单元格样式设置 单元格样式的控制,依赖openpyxl.style包,其中定义 ...

  4. matlab 写excel 慢_为什么将大量数据导入到excel速度太慢?

    Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件.通过连接Excel和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图 ...

  5. vue 导入excel解析_【Vue 笔记】Vue 读取excel数据并生成数组

    因为需求需要读取excel的.xlsx和.xls文件来批量生成网页数据.找了网上的资料后发现js-xlsx可以实现. 首先安装依赖: $ npm install xlsx HTML部分: 引入: im ...

  6. matlab 图像读取长宽_计算机视觉学习笔记1 图像读取显示和尺寸变换

    第一天,图像的读取,显示和尺寸变换 c++,python,MATLAB各实现一遍,以这个头骨图像为例吧 c++调用OpenCv实现图像显示和尺寸变换 c++用的编译器为clion,因此需要先配置cma ...

  7. 移动端excel导出_手机联系人竟可导出到Excel?教你要如何做

    我们知道,如果想要将手机联系人导出到本地,那么一般会以VCF格式来储存.在手机或者电脑当中打开VCF格式可以直接导入联系人,但如果说要编辑修改联系人,就非常不方便了.另外,有时候我们会遇到需要批量修改 ...

  8. excel数据库_条码打印软件如何批量打印Excel中的指定数据

    条码打印软件可以连接各种数据库,如TXT.Excel.Access.SQL Server.My SQL等实现条形码.二维码,文字,图片的批量制作.而条码打印软件在读取数据时,是把该数据的整条内容进行读 ...

  9. tinyxml 读取文本节点_在Windows下使用TinyXML-2读取UTF-8编码包含中文字符的XML文件...

    TinyXML-2 是一个用 C++ 开发的小巧.高效的 XML 解析工具,它在 GitHub 网站上的链接为: https://github.com/leethomason/tinyxml2 .它的 ...

  10. java 读取mysql数据_使用java从mysql数据库读取数据

    首先,我正在使用jTextFields阅读用户的产品名称和产品数量.对于该产品,我使用sql查询从数据库中读取产品ID和价格.但是在下面的代码中我在jtextField中显示产品价格,但是在运行tha ...

最新文章

  1. Ubuntu 无界面使用selenium chrome + headless
  2. 2020年AI怎么发展?听加州大学、谷歌、英伟达、IBM怎么说
  3. 百度地图 app 点击事件无效、不触发 解决方案
  4. python编程词汇-基本 Python 词汇
  5. 科技管理的作业选题 很重要
  6. 卡通角色表情驱动系列一
  7. Serval and Parenthesis Sequence CodeForces - 1153C 贪心
  8. Java之接口的静态方法的定义和使用
  9. 毕业后半年就变成了一条“狗
  10. 百度换肤功能实现(vue)
  11. 为航空公司注入数字活力,腾讯助力祥鹏航空数字客舱圆满首航
  12. Python 蓝凌OA任意文件读取批量扫描 poc编写
  13. Git Pull Failed:You have not concluded your merge.Exiting because of unfinished merge
  14. 打开xmind文件报错
  15. 微信小程序能给花店带来哪些作用_分享花店微信小程序开发优势
  16. 小鼠大脑解剖图分区_科学家们绘制小鼠大脑的详细3D结构图谱
  17. Ubuntu系统中编写c语言程序教程
  18. larbin的详细配置
  19. 在Unity3D中错误提示分别是什么意思
  20. 理解什么是restful

热门文章

  1. 与亲哥决裂20年,董明珠被踢出族谱:帮你是情分,不帮你是本分
  2. 【年度榜单】2020大数据产业创新技术突破丨数据猿·金猿榜
  3. 网站上线前期应该如何制定关键词优化策略
  4. Day2-Python基础2---列表、元组操作
  5. android 资源文件类型,命名规则(配置限定符名称),及其加载规则
  6. Ant下载安装配置及使用
  7. C语言作业然后是几点,用C语言解“然后是几点”问题
  8. 【论文笔记】Switching Convolutional Neural Network for Crowd Counting
  9. oracle打开audit,oracle开启audit(审计)
  10. html 多余的字省略号,html中把多余文字转化为省略号