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 Trie树实现字典排序
Mar 28 Python
Python实现递归遍历文件夹并删除文件
Apr 18 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
python3 打开外部程序及关闭的示例
Nov 06 Python
利用nohup来开启python文件的方法
Jan 14 Python
python读取Excel表格文件的方法
Sep 02 Python
python hash每次调用结果不同的原因
Nov 21 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
使用python实现CGI环境搭建过程解析
Apr 28 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 04 Python
Pillow图像处理库安装及使用
Apr 12 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学习笔记之 函数声明(二)
2011/06/09 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
js实现微信聊天界面
2020/08/09 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
应届生护士求职信
2013/11/01 职场文书
服装设计专业自荐书范文
2013/12/30 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
服务质量承诺书
2014/03/27 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
python - asyncio异步编程
2021/04/06 Python