Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将文本文件转换为可容纳65536行以上的Microsoft Excel_Python_Excel - Fatal编程技术网

Python 将文本文件转换为可容纳65536行以上的Microsoft Excel

Python 将文本文件转换为可容纳65536行以上的Microsoft Excel,python,excel,Python,Excel,我发现(如下所示)可以将文本文件转换为Microsoft Excel,并且可以正常工作。然而,65536是Excel 97、Excel 2000、Excel 2002和Excel 2003支持的最大电子表格行数,而Excel 2007、2010和2013支持1048576行 由于我的文本文件包含的行数超过65536行,如何修改代码,使其能够最好地将文本文件转换为可容纳1048576行的Excel版本 import glob import csv import xlwt for filename

我发现(如下所示)可以将文本文件转换为Microsoft Excel,并且可以正常工作。然而,65536是Excel 97、Excel 2000、Excel 2002和Excel 2003支持的最大电子表格行数,而Excel 2007、2010和2013支持1048576行

由于我的文本文件包含的行数超过65536行,如何修改代码,使其能够最好地将文本文件转换为可容纳1048576行的Excel版本

import glob
import csv
import xlwt

for filename in glob.glob("C:\Users\MSI\Desktop\Line Item Besar\\*.txt"):
    spamReader = csv.reader((open(filename, 'rb')), delimiter='|',quotechar='"')
    encoding = 'latin1'
    wb = xlwt.Workbook(encoding=encoding)
    sheet=xlwt.Workbook()
    sheet = wb.add_sheet('sheet 1')
    newName = filename
    for rowx, row in enumerate(spamReader):
        for colx, value in enumerate(row):
            sheet.write(rowx, colx, value)
    wb.save(newName.replace('.txt','.xls'))

print "Done"

您需要将文件另存为
.xlsx
,这是一种现代的
XML
格式,现在已不再使用旧的二进制
.xls
。但是,有几个问题说明
xlwt
不能与
.xlsx
一起使用,因此您可能必须切换到另一个模块,例如。

并支持创建包含100万行的Excel xlxs文件

以下是使用XlsxWriter的程序版本:

import glob
import csv
from xlsxwriter import Workbook

for filename in glob.glob("C:\path\*.txt"):
    spamReader = csv.reader((open(filename, 'rb')),
                            delimiter='|', quotechar='"')

    newName = filename.replace('.txt', '.xlsx')

    workbook = Workbook(newName, {'strings_to_numbers': True})
    worksheet = workbook.add_worksheet()

    for rowx, row in enumerate(spamReader):
        for colx, value in enumerate(row):
            worksheet.write(rowx, colx, value)

    workbook.close()

print "Done"

嗨,jmcnamara。感谢您的代码,但是我收到了SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置2-3的字节:截断\uxxxxx转义。请你提出建议。提前感谢。您需要确保使用
csv
模块从txt文件读取的任何数据都转换为UTF-8。请参阅上的
csv
模块的文档。