如何使用Python将文本文件转换为Excel

3

我有一个文本文件(textfile.txt),它位于一个名为DOT的文件夹中,我正在尝试使用Python代码将该文件转换为Excel文件(Excelfile.xls)。虽然我不熟悉Python,但通过其他评论,我编写了以下代码。但是这段代码并不能运行。请问有谁能帮助我找到正确的语法?

book = xlwt.Workbook()
import xlwt
import xlrd
f = open('/DOT/textfile.txt', 'r+')
book.save('/DOT/Excelfile' + '.xls')

你没有读取你的文本文件,也没有将其转换。你能告诉我文本文件中的数据格式吗?它是一行行的数据,每个数据点在一行中用逗号分隔吗? - trans1st0r
请查看 https://pypi.python.org/pypi/xlwt 中的快速入门部分。 - trans1st0r
该文件有由制表符分隔的数据行。 - Gloria
@JamieBull 谢谢你提供的链接。我已经阅读了这些信息,但是我不确定需要添加/更改什么才能使它正常工作。 - Gloria
添加了一些可能有用的代码。 - trans1st0r
2个回答

2

这是基于文档:https://pypi.python.org/pypi/xlwt

您需要逐行读取文件,格式化并将其写入xls文件。

import xlwt
import xlrd

book = xlwt.Workbook()
ws = book.add_sheet('First Sheet')  # Add a sheet

f = open('/DOT/textfile.txt', 'r+')

data = f.readlines() # read all lines at once
for i in range(len(data)):
  row = data[i].split()  # This will return a line of string data, you may need to convert to other formats depending on your use case

  for j in range(len(row)):
    ws.write(i, j, row[j])  # Write to cell i, j

book.save('/DOT/Excelfile' + '.xls')
f.close()

这里正在读取数据,一次性读取所有行。然后,每行被拆分成数据点列表,并添加到电子表格的新行中。

这不是最好/最优解决方案,但应该能让您开始。如果有错误,请告诉我。


当我使用你的代码时,出现了错误"ValueError: column index (256) not an int in range(256)"。 - Gloria
抱歉,更改了一行代码: row = data[i].split() - trans1st0r
我仍然收到相同的错误信息“ValueError: column index (256) not an int in range(256)”。该文件有超过500列。这可能是问题所在吗? - Gloria
对于 .xls 文件,最大列数为256。 对于 xlsx 文件,它是16,384。你需要使用另一个库,也许是 http://www.python-excel.org/ 中的 openpyxl。 - trans1st0r

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接