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使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
Python实现提取文章摘要的方法
Apr 21 Python
python3爬取各类天气信息
Feb 24 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
python训练数据时打乱训练数据与标签的两种方法小结
Nov 08 Python
Linux上使用Python统计每天的键盘输入次数
Apr 17 Python
python 判断文件还是文件夹的简单实例
Jun 10 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
Python实现屏幕录制功能的代码
Mar 02 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 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
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
动态添加js事件实现代码
2009/03/12 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
python读写ini文件示例(python读写文件)
2014/03/25 Python
Python中的字典遍历备忘
2015/01/17 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python设计模式之职责链模式原理与用法实例分析
2019/01/11 Python
Python FFT合成波形的实例
2019/12/04 Python
python几种常用功能实现代码实例
2019/12/25 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
高三自我鉴定
2013/10/23 职场文书
电大毕业生自我鉴定
2013/11/10 职场文书
国窖1573广告词
2014/03/21 职场文书
财会专业大学生求职信
2014/09/26 职场文书
优秀党员事迹材料
2014/12/18 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
九年级化学教学反思
2016/02/22 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle
分享Python异步爬取知乎热榜
2022/04/12 Python