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输出9*9乘法表的方法
May 25 Python
Python选课系统开发程序
Sep 02 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
python 常见字符串与函数的用法详解
Nov 23 Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
May 18 Python
通过cmd进入python的步骤
Jun 16 Python
python中常见错误及解决方法
Jun 21 Python
python中pop()函数的语法与实例
Dec 01 Python
Python+Appium实现自动化清理微信僵尸好友的方法
Feb 04 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 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
PL-880隐藏功能
2021/03/01 无线电
thinkphp 多表 事务详解
2013/06/17 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
json格式的javascript对象用法分析
2016/07/04 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
10个Python小技巧你值得拥有
2018/09/29 Python
Python tkinter label 更新方法
2018/10/11 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
Python将string转换到float的实例方法
2019/07/29 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
django之自定义软删除Model的方法
2019/08/14 Python
深入了解python中元类的相关知识
2019/08/29 Python
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
大学生毕业自荐信
2013/10/10 职场文书
应征英语教师求职信
2013/11/27 职场文书
争论的故事教学反思
2014/02/06 职场文书
护士毕业自我鉴定
2014/02/07 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫