将文本文件转换为可容纳超过65536行的Microsoft Excel
我发现Python代码 (如下)将文本文件转换为Microsoft Excel,它的工作原理。 但是,65,536是Excel 97,Excel 2000,Excel 2002和Excel 2003支持的电子表格行的最大数量,而Excel 2007,2010和2013支持1,048,576行。
由于我的文本文件包含超过65,536行,我如何修改代码,以便它可以最好地将文本文件转换为可以满足1,048,576行的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
。 然而,在SO上有几个问题说明xlwt
不能与.xlsx
工作,所以可能你必须切换到另一个模块,例如XlsxWriter
。
XlsxWriter和OpenPyXL支持创build具有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"
- 在打开的单元格中显示Excel帐户用户名
- 通过VBA更有效的方式来打开一个外部工作表,导出到PDF并closures它
- 如何添加到文本标签对于使用Open xml或EPPLUS的Excel图表
- types不匹配,将excel单元格值与数组值进行比较* FIXED *
- VBA Web Scrape(getelementsbyclassname)
- 如何设置data.frame的rownames?
- 如何从.net代码检查是否启用了“信任访问VBA项目对象模型”的Excel应用程序?
- 为什么我在这个使用SumProduct的代码行上挂了?
- Analysis Services在PowerPivot SharePoint中刷新数据时不断创build新的数据库标识