Python:使用 xlsxwriter 将 txt 逐行导入 excel

问题描述 投票:0回答:3

您好,感谢您的阅读。

我在 python 中遇到 for 循环问题。 我正在尝试逐行读取 .txt 文件并使用 worksheet.write_row 将每一行导入 excel 中。 我尝试了很多其他方法来完成这项工作,但对于这一切来说,我还很陌生,这个方法对我来说是最容易理解的。

它只从文件中选择一行,所以我很确定我编写的“for”循环有问题。

我已经尝试了所有我能想到的不同类型的编辑循环,但没有任何效果。我还研究了网络,但找不到任何我可以识别的解决方案。因此,任何帮助将不胜感激。

import xlsxwriter

workbook = xlsxwriter.Workbook('pythonlinetest.xlsx')        #create file
worksheet = workbook.add_worksheet()                         #create worksheet
data = open('160919-001 14cts c133_vi.txt','r')                #loaddata

#count lines
linelist = data.readlines()
count = len(linelist)
print count          #check lines

#make each line and print in excel
for n in range (0, len(linelist))
    line = linelist[n]
    splitline = line.split("\t")
    worksheet.write_row(row, 0, splitline)
    row += 1

>>>> Error: File "<ipython-input-4-abc8f489522d>", line 2
    for n in range (0, len(linelist))
                                     ^
SyntaxError: invalid syntax


#close workbook
workbook.close()

非常感谢!

python excel xlsxwriter
3个回答
1
投票

在评论中写下讨论,

  1. 错误消息中提到的该行末尾缺少
    :
  2. 如果您的输入不是
    ascii
    ,则需要覆盖解码行为。
  3. 请参阅 http://xlsxwriter.readthedocs.io/tutorial03.html 了解覆盖
    xlsxwriter
    的输入格式行为。

0
投票

感谢 Baris Demiray 的帮助,我成功地完成了逐行导入工作。我遇到了由“°”符号引起的解码错误。现在这个问题已经解决了。如果有人感兴趣,我将分享我的代码。

唯一的问题是,如果您的 .txt 文件包含数字,Excel 首先将无法识别这些数字。如果有人知道如何编辑此代码以便 excel 能够识别带有数字的字符串,请随时编辑。

import xlsxwriter

workbook = xlsxwriter.Workbook('test.xlsx')        #create file
worksheet = workbook.add_worksheet()           #create worksheet
data = open('your.txt','r')                #loaddata

linelist = data.readlines()              #read each line
count = len(linelist)                 #count lines
print count                       #check number of lines

for num in range (0, count):         #create each line and print in excel
    line = linelist[num]            #load each line in variable
    line = line.decode('latin1')         #decode problem solution
    splitline = line.split("\t")          #split lines
    worksheet.write_row(num, 0, splitline)         #write each line in excel

workbook.close()            #close workbook

就是这样,也许对某人有帮助,也许没有。请记住,我对此很陌生,并且多年来没有编写任何程序,所以我确信有更好的方法来做到这一点。


0
投票

要让 Excel 文件识别数字,请使用:

workbook = xlsxwriter.Workbook('test.xlsx'', {'strings_to_numbers': True})
© www.soinside.com 2019 - 2024. All rights reserved.