python写入excel超过65536行报错问题解决方法

上篇文章中将内容写到excel中使用import xlwt包,后来发现文件写入超过65536行的时候就会报错,无法转换成功,xls后缀文件,只支持这么多行,在网上搜索一下,解决方法可以写多个sheet页,但不是我想要的方式,后来后搜索了下,找到了openpyxl包,使用这个包写入数据,文件保存为xlsx格式的,就可以完美解决。

1、安装包pip install openpyxl

2、再将上篇文章代码(文章开头连接)修改如下,关键点:openpyxl,get_sheet_by_name,sheet.cell(row=x,column=y,value=item), xls.save

#!/bin/env python

# -*- encoding: utf-8 -*-

#-------------------------------------------------------------------------------

# Purpose:    txt转换成Excel

# use: python txt2excel.py out.txt ABC

#-------------------------------------------------------------------------------

import datetime

import time

import os

import sys

import xlwt #需要的模块

import openpyxl

def txt2xls(filename,xlsname):  #文本转换成xls的函数,filename 表示一个要被转换的txt文本,xlsname 表示转换后的文件名

    print('converting xlsx ... ')

    f = open(filename)  #打开txt文本进行读取

    x = 1                #在excel开始写的位置(y)

    y = 1                #在excel开始写的位置(x)

    xls=openpyxl.Workbook()

    sheet = xls.get_sheet_by_name('Sheet')

    while True:  #循环,读取文本里面的所有内容

        line = f.readline() #一行一行读取

        if not line:  #如果没有内容,则退出循环

            break

        for i in line.split('\t'):#读取出相应的内容写到x

            item=i.strip()

            sheet.cell(row=x,column=y,value=item)

            y += 1 #另起一列

        x += 1 #另起一行

        y = 1  #初始成第一列

    f.close()

    xls.save(xlsname+'.xlsx') #保存

if __name__ == "__main__":

    filename = sys.argv[1]

    xlsname  = sys.argv[2]

    txt2xls(filename,xlsname)

版权声明:本文为CSDN博主「levy_cui」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/levy_cui/article/details/86590614

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容