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中文乱码的解决方法
Nov 04 Python
python自动zip压缩目录的方法
Jun 28 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
python爬取哈尔滨天气信息
Jul 14 Python
Linux下安装python3.6和第三方库的教程详解
Nov 09 Python
Python随机生成身份证号码及校验功能
Dec 04 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
Python 调用 Windows API COM 新法
Aug 22 Python
基于python判断目录或者文件代码实例
Nov 29 Python
Python读取csv文件实例解析
Dec 30 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 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
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
php导入导出excel实例
2013/10/25 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
JavaScript实现区块链
2018/03/14 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
vue 内联样式style中的background用法说明
2020/08/05 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
Python定时任务sched模块用法示例
2018/07/16 Python
Python中反射和描述器总结
2018/09/23 Python
python解析yaml文件过程详解
2019/08/30 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
用python实现一个简单的验证码
2020/12/09 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
运动会入场词50字
2014/02/20 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
精神文明建设标语
2014/06/16 职场文书
高三教师工作总结2015
2015/07/21 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
Python List remove()实例用法详解
2021/08/02 Python