时间:2021-05-23
(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 pprintimport openpyxlimport openpyxl.stylesfrom 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 = 1for cell in row:lineData.append(cell.value) # 1列1列读col = col + 1list.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 = 11列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文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
需求如下:现有一个1G左右的日志文件,大约有500多万行,用php返回最后几行的内容。1.直接采用file函数来操作orfile_get_content()肯定
python使用pandas和xlsxwriter读写xlsx文件已有xlsx文件如下:1.读取前n行所有数据#coding:utf-8importpandas
Shell循环中实现展示进度百分比的脚本方法当我需要处理一个几万行的文件的时候,需要处理的时间是比较长的。我一开始的想法是,没处理一行,就输出一个#号。但是这样
今天,探讨一个有趣的话题:MySQL单表数据达到多少时才需要考虑分库分表?有人说2000万行,也有人说500万行。那么,你觉得这个数值多少才合适呢?曾经在中国互
最近写的一个数据采集程序生成了一个含有1千多万行数据的文件,数据由4个字段组成,按照要求需要删除第二个字段重复的行,找来找去linux下也没找到合适的工具,se