python如何将xls转成xlsx(Python这样操作能存储100多万行的xlsx文件)
类别:脚本大全 浏览量:1821
时间:2021-10-16 00:48:44 python如何将xls转成xlsx
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文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://www.jianshu.com/p/1d7c31e230bc
您可能感兴趣
- pythontkinter循环显示文本(Python实现定时自动关闭的tkinter窗口方法)
- python统一支付接口(Python实现的微信支付方式总结三种方式)
- python之pil模块使用(Python3安装Pillow与PIL的方法)
- linux切换python版本(linux安装python修改默认python版本方法)
- python实战方法(Python常用特殊方法实例总结)
- python微信窗口内容获取(python使用wxpy轻松实现微信防撤回的方法)
- python字典的key(Python使用dict.fromkeys快速生成一个字典示例)
- pycharm怎么创建django项目(Python、 Pycharm、Django安装详细教程图文)
- python协程结果(深入浅析python 协程与go协程的区别)
- python列表的循环遍历使用教程(Python中使用遍历在列表中添加字典遇到的坑)
- pythonyield有什么用(彻底理解Python中的yield关键字)
- python用pyqt5制作登录界面(python3+pyqt5+itchat微信定时发送消息的方法)
- java集成钉钉发送消息(Python实现钉钉发送报警消息的方法)
- python的turtle库怎么进入(python的turtle库使用详解)
- python机器人开发(python程序控制NAO机器人行走)
- python redis锁的使用(Python操作redis实例小结String、Hash、List、Set等)
- 八月再见 愿你岁月不扰,余生静好(八月再见愿你岁月不扰)
- 赏读 八月再见,九月你好(赏读八月再见九月你好)
- 散文 八月再见,九月,我在风中等你(散文八月再见九月)
- 8月再见 9月你好(8月再见)
- 魔兽世界 设计师爆料,原始版本并无PVP,跨阵营属于返璞归真(魔兽世界设计师爆料)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
热门推荐
- js编写简单网页计算器(js实现网页计算器)
- linux查python进程(linux查找当前python解释器的位置方法)
- mysql主从复制配置(Mysql实现主从配置和多主多从配置)
- nginxssl证书怎么设置(nginx结合openssl实现https的方法)
- 使用mysqldump命令来备份(linux使用mysqldump+expect+crontab实现mysql周期冷备份思路详解)
- python中统计文本中单词数的代码(Linux上使用Python统计每天的键盘输入次数)
- php支付接口(PHP实现的支付宝支付功能示例)
- phpstudy的默认网站根目录是什么(phpstudy v8.0创建本地站点域名教程图文)
- javascript 数据分析(利用JavaScript差集实现一个对比小工具)
- thinkphp微信开发实例(ThinkPHP框架下微信支付功能总结踩坑笔记)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9