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的字典和列表的使用中一些需要注意的地方
Apr 24 Python
Python找出9个连续的空闲端口
Feb 01 Python
Django中ORM表的创建和增删改查方法示例
Nov 15 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
Python何时应该使用Lambda函数
Jul 02 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
python实现梯度下降和逻辑回归
Mar 24 Python
python suds访问webservice服务实现
Jun 26 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
Jul 27 Python
python import 上级目录的导入
Nov 03 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
php实现分页工具类分享
2014/01/09 PHP
php取得字符串首字母的方法
2015/03/25 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python实现复制整个目录的方法
2015/05/12 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
简历自荐信
2013/12/02 职场文书
企划主管岗位职责
2013/12/12 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
保安岗位职责
2014/02/21 职场文书
读群众路线心得体会
2014/03/07 职场文书
销售内勤岗位职责
2014/04/15 职场文书
防灾减灾活动总结
2014/08/30 职场文书
青年文明号申报材料
2014/12/23 职场文书
幸福终点站观后感
2015/06/04 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
Python Django ORM连表正反操作技巧
2021/06/13 Python