Python这样操作能存储100多万行的xlsx文件


Posted in Python onApril 16, 2019

(1) 如果excel文件是xls,2003版的,使用xlrd和xlwt库来对xls文件进行操作

(2) 如果excel文件是xlsx,2007以上版的,使用openpyxl库来对xlsx文件进行操作

Tips:xlrd、xlwt和openpyxl非python自带库。

我们使用Python做数据挖掘和分析时候,当数据行超过一定数量,xls文件是存不下的。显然无法满足我们的大量数据存储需求,这个时候需要改用xlsx。

那具体xls和xlsx最大分别可以存多少行呢?

(1) 对于2003版本的xls文件,最大行数是65536行

(2) 对于2007版本的xlsx文件,最大行数是1048576行

闲话不多聊,直接上代码干货

!/usr/bin/env python3
- - coding: utf-8 - -

读写2007 excel

import pprint
import openpyxl
import openpyxl.styles
from openpyxl.styles import Font,colors

读取Excel文件

def readExcel(filename):
workbook = openpyxl.load_workbook(filename)
worksheet = workbook['用户']
list = []
for row in worksheet.rows: # 1行1行读
lineData = [] # 行数据
col = 1
for cell in row:
lineData.append(cell.value) # 1列1列读
col = col + 1
list.append(lineData)
return list

操作数据

def operateData(filename):
list = readExcel(filename)

去除第一行,第一行是表头

list.pop(0)
pprint.pprint(list)
pprint.pprint("先按性别排序,再按身高排序")

要对身高进行排序,但是男女有别

先按性别排序,再按身高排序

list.sort(key=lambda ele: (ele[3], ele[4]))
pprint.pprint(list)

获取Excel标签列表

比如第5行标签列表,总共4列 ['A5', 'B5', 'C5', 'D5']

def getTagList(index, colNum):
tagList = []
for i in range(0, colNum):

A的ascii码值65

tag = chr(65 + i) + str(index)
tagList.append(tag)
return tagList

写入Excel文件

def writeExcel(outputFilePath, list):
book = openpyxl.Workbook()
sheet = book.create_sheet("用户", 0)
sheet.title = "用户" # sheet名称
rowNum = len(list)
try:

1行1行读取

for i in range(1, rowNum + 1): # 下标从1开始
datalist = list[i -1] # 读取1行
col = 1

1列1列写入

for data in datalist:
sheet.cell(i, col, data) #写入内容
col += 1

获取标签列表

tagList = getTagList(i, len(datalist))
font = Font('微软雅黑', size = 14, color = '333333')

设置单元格字体、字号、颜色

for tag in tagList:
sheet[tag].font = font # 设置字体

保存文件

book.save(outputFilePath)
except Exception as e: # 捕获异常
print(e)

主函数

if name == " main ":
print("读取xlsx格式的数据")
userList = readExcel('user.xlsx')
print("写入xlsx文件")
writeExcel("user2.xlsx", userList)
print("操作数据")
operateData('user.xlsx')

Python这样操作能存储100多万行的xlsx文件

总结

以上所述是小编给大家介绍的Python这样操作能存储100多万行的xlsx文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python函数参数*args**kwargs用法实例
Dec 04 Python
python使用arp欺骗伪造网关的方法
Apr 24 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
利用python如何处理nc数据详解
May 23 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
Pandas时间序列基础详解(转换,索引,切片)
Feb 26 Python
如何用python免费看美剧
Aug 11 Python
如何用 Python 处理不平衡数据集
Jan 04 Python
python 单机五子棋对战游戏
Apr 28 Python
Python字符串内置函数功能与用法总结
Apr 16 #Python
python3实现字符串操作的实例代码
Apr 16 #Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 #Python
Django之无名分组和有名分组的实现
Apr 16 #Python
Pythony运维入门之Socket网络编程详解
Apr 15 #Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 #Python
Python 编程速成(推荐)
Apr 15 #Python
You might like
YB217、YB235、YB400浅听
2021/03/02 无线电
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
简单了解JavaScript异步
2019/05/23 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
使用python 3实现发送邮件功能
2018/06/15 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
一套VC试题
2015/01/23 面试题
大学生家政服务项目创业计划书
2014/01/30 职场文书
更夫岗位责任制
2014/02/11 职场文书
市场推广策划方案
2014/06/02 职场文书
长江三峡导游词
2015/01/31 职场文书
实施意见格式范本
2015/06/05 职场文书
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android