Python这样操作能存储100多万行的xlsx文件

 更新时间:2019年04月16日 09:34:21   作者:Python小老弟  
这篇文章主要介绍了Python这样操作能存储100多万行的xlsx文件的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

(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 ollama的搭建与使用流程分析

    Python ollama的搭建与使用流程分析

    这篇文章主要介绍了Python ollama的搭建与使用流程分析,详细介绍了ollama的安装方式,本文结合实例给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • python3中的eval和exec的区别与联系

    python3中的eval和exec的区别与联系

    这篇文章主要介绍了python3中的eval和exec的区别与联系,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 浅谈Python中用datetime包进行对时间的一些操作

    浅谈Python中用datetime包进行对时间的一些操作

    下面小编就为大家带来一篇浅谈Python中用datetime包进行对时间的一些操作。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Python结合ImageMagick实现多张图片合并为一个pdf文件的方法

    Python结合ImageMagick实现多张图片合并为一个pdf文件的方法

    这篇文章主要介绍了Python结合ImageMagick实现多张图片合并为一个pdf文件的方法,结合实例形式分析了Python将图片文件转换为pdf文件的相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • Python判断列表是否已排序的各种方法及其性能分析

    Python判断列表是否已排序的各种方法及其性能分析

    这篇文章主要介绍了Python判断列表是否已排序的各种方法及其性能分析的相关资料,需要的朋友可以参考下
    2016-06-06
  • python 深入了解GIL锁详细

    python 深入了解GIL锁详细

    这篇文章主要介绍了python 深入了解GIL锁,python的使用者都知道Cpython解释器有一个弊端,真正执行时同一时间只会有一个线程执行,这是由于设计者当初设计的一个缺陷,里面有个叫GIL锁的,但他到底是什么,接下来和小编一起进入下面文章详细内容吧
    2021-10-10
  • Python脚本实现12306火车票查询系统

    Python脚本实现12306火车票查询系统

    本文给大家分享我使用python3实现的12306火车票查询系统,小编分步骤给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2016-09-09
  • keras Lambda自定义层实现数据的切片方式,Lambda传参数

    keras Lambda自定义层实现数据的切片方式,Lambda传参数

    这篇文章主要介绍了keras Lambda自定义层实现数据的切片方式,Lambda传参数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • OpenCV实战之图像拼接的示例代码

    OpenCV实战之图像拼接的示例代码

    图像拼接可以应用到手机中的全景拍摄,也就是将多张图片根据关联信息拼成一张图片。本文将介绍利用Python OpenCV实现图像拼接的方法,感兴趣的可以试一试
    2022-01-01
  • python实现简单日志记录库glog的使用

    python实现简单日志记录库glog的使用

    这篇文章主要介绍了python实现简单日志记录库glog的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论