Python中,一次性往Excel写入几十万条数据
最近有一个往Excel文件中不同的工作簿写入大量数据的需求,如下图所示,有三个工作簿,每个工作簿中的数据量不同,向一个工作簿中写入数据时需要将上一次写入的数据清空,且其它两个工作簿的数据不能清空。
网上大部分的教程都是一条一条的往里面写入,这种效率太低,而且耗时太长。或者就是一次往一个工作簿写入数据时,会将之前的全部数据覆盖,也不太符合要求。
下面是自己的实现方式
我使用的是openpyxl和pandas模块相结合使用的。在写入数据时,首先会将写入的数据长度与Excel表中某一个工作簿中的数据长度进行对比,若写入数据的长度小于Excel表中某一个工作簿中的数据长度,则将该工作簿进行移除并重新创建,详细代码如下。
if len(data) < int(df_rows):Title = [u'模拟数据', u'平均值', u'方差', u'散斑对比度']book = load_workbook(AllPath + r"\Simulate.xlsx")# 获取Excel表格中的所有sheetsheets = book.worksheetsfor i in range(len(sheets)):strV = ''valueIndex = str(sheets[i])print(f'valueIndex={valueIndex}')for j in range(12, len(valueIndex) - 2):strV += valueIndex[j]print(f'strV={strV}')if strV == SHEET:Sheet = book[SHEET]book.remove(Sheet)Coefficient = book.create_sheet(index=0, title=SHEET)Coefficient.append(Title)book.save(AllPath + r"\Simulate.xlsx")book.close()
在判断完数据后,将几十万条数据一次全部写入Excel中的某一个工作簿,具体代码如下
df = pd.DataFrame(data)
book = load_workbook(AllPath + r"\Simulate.xlsx")
with pd.ExcelWriter(AllPath + r"\Simulate.xlsx") as writer:writer.book = bookwriter.sheets = dict((ws.title, ws) for ws in book.worksheets)df.to_excel(writer, sheet_name=SHEET, startrow=1, index=False, header=False)
最后就能实现上述的需求了。
源代码链接
Python中,一次性往Excel写入几十万条数据相关推荐
- python对excel某一列去重-「总结篇」Python中所有的Excel操作技巧
原标题:「总结篇」Python中所有的Excel操作技巧 Python对于Excel的操作是多种多样的,掌握了相关用法就可以随心所欲的操作数据了! 操作xls文件 xlrd(读操作): import ...
- 解决python中csv文件中文写入问题
解决python中csv文件中文写入问题 参考文章: (1)解决python中csv文件中文写入问题 (2)https://www.cnblogs.com/harrymore/p/10063775.h ...
- Python中xlrd操作excel单元格
学习目标 Python中xlrd操作excel单元格 学习内容 1.获取工作表 sheet=data.sheet_by_index(0) 2.返回单元格对象 sheet.cell(1,2) #返回第二 ...
- Python中使用sentinelsat包自动下载Sentinel系列数据
Python中使用sentinelsat包自动下载Sentinel系列数据 前言 普通下载 使用工具批量下载Sentinel 数据 使用SNAP批量下载 第三方软件或网站批量下载 Sentinel-1 ...
- python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)
python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict) 目录
- mysql十万条数据_2秒内向数据库中插入十万条数据?
怎么向数据库中快速插入十万条数据呢,当然得需要对比才能看到效果,今天给大家亲身测了两种方法对比,差别25倍左右 1,数据库用sql server 2008 r2,表结构非常简单,四个字段,建数据表的s ...
- java list 前100个_实现java 中 list集合中有几十万条数据,每100条为一组取出
解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...
- 在vue中如何高性能渲染十万条数据(虚拟列表)并且增加个搜索框可以搜索到这些数据
在工作中,有时会遇到需要一些不能使用分页方式来加载列表数据的业务情况,对于此,我们称这种列表叫做长列表.比如,在一些外汇交易系统中,前端会实时的展示用户的持仓情况(收益.亏损.手数等),此时对于用户的 ...
- 2021-09-08 使用easyexcel解析几十万条数据时报错
使用easyexcel上传几万条数据正常,解析几十万条数据时报了如下错误: com.alibaba.excel.exception.ExcelAnalysisException: java.lang. ...
最新文章
- 微信小程序画布圆形进度条demo
- SQLite第三课 源码编译错误以及解决
- word文档基本编辑功能_【读者培训】Word在编辑长文档时的基本应用
- springboot后台弹出前台对话框_基于springboot的精品小说网站
- css实现提示信息,单纯使用CSS实现动态提示信息
- python客户端和服务端实验_python实现socket客户端和服务端简单示例
- IOS笔记本----读写.plist文件
- WordPress菜单“显示选项”无法显示的解决办法
- 样本量过少时,如何科学衡量喜好程度?
- false true求或_如何依据【关键字】求【数量和】
- DPDK数据流过滤规则例程解析—— 网卡流处理功能窥探
- svn指定版本代码对比的方法
- malloc函数java_malloc函数详解及用法举例
- react class的写法
- Codeforces1575 D. Divisible by Twenty-Five(dp)
- 华为OD机试 - 日志首次上报最多积分
- 论文写作——如何作图(visio/ppt+Adobe Acrobat Pro)
- jQuery入门(1)
- Windows下隐藏文件夹
- E.03.09 China Tried to Slow Divorces by Making Couples Wait. Instead, They Rushed.
热门文章
- 数据结构第二版(朱昌杰版)习题六
- 【电力电子技术】单相全波可控与单相桥式半控整流电路
- 内网计算机如何在线查找mac地址,怎么查自己电脑的ip 和mac地址 局域网ip地址怎么查?...
- 架构师的软实力之架构透视
- android 2.2下载地址,Windows下载android2.2完整源码
- Source Insight 4.0打开一会就闪退 解决方法
- 利用C语言实现文件的读写操作
- linux中文语言包下载地址,centos中文语言包-官方版-centos中文语言包fonts-chinese-3.02-12.el5.noarch.rpm-独木成林...
- 传智168期 SSH网上商城笔记day41~day45(2017年4月15日15:57:30)
- 【译文】抽象漏洞法则