将文本文件中的列写入excel

时间:2017-06-22 20:41:56

标签: python excel

我正在编写一个代码,将.txt文件转换为.xls文件,我需要将每个第4列的.txt文件放入,说“Sheet 1”,每隔三个文件进入,说“Sheet 2” “等等。文本文件在前两行中包含标题,实际数据在第3列中开始。我不确定如何以及任何指导或帮助将非常感激。这是我目前的代码:

import xlwt
import six
import itertools

def is_number():
try:
    float(s)
    return True
except ValueError:
    return False

def txt_to_xls():
    f=open('textfile.txt', 'r+')
    row_list=[]
    for row in f:
        row_list.append(row.split())
    column_list=map(list, siz.moves.zip_longest(*row_list, fillvalue=' '))
    workbook=xlwt.Workbook()
    worksheet=workbook.add_sheet('Sheet 1')

    i=0
    for column in column_list:
        for item in range(len(column)):
            value=column[item].strip()
            if is_number(value):
                worksheet.write(item, i, float(value))
            else:
                worksheet.write(item, i, value)
        i+=1
    workbook.save('test.xls')

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用Visual Basic for Applications?它基本上是一种用于操作excel电子表格的语言。以下是我认为可以完成您所描述的示例代码:

Sub WriteToFile()
    Dim FileNum As Integer
    Dim DataLine As String
    Dim Counter As Integer

    Counter = 0

    FileNum = FreeFile()
    Open "C:\Users\...\yourDocument.txt" For Input As #FileNum


    While Not EOF(FileNum)
        Line Input #FileNum, DataLine
        Counter = Counter + 1

        If Counter > 2 Then
            Dim splitString As Variant
            splitString = Split(DataLine, " ")
            Worksheets("Sheet1").Cells(Counter - 2, 1).Value = splitString(3)
            Worksheets("Sheet2").Cells(Counter - 2, 1).Value = splitString(2)
        End If
    Wend
End Sub

以下是有关如何在excel https://msdn.microsoft.com/en-us/library/office/ee814737(v=office.14).aspx中开始使用VBA的良好链接 要重新格式化以满足您的需要,您可以更改yourDocument.txt的路径以转到txt文件,并将Sheet1和Sheet2重命名为所需的工作表名称。此外,如果要将内容添加到其他工作表或同一工作表中的不同列,则可以添加更多类似的行。此外,根据您的分隔符,您应该更改Split()方法中的第二个参数。我认为语法是相当自我解释的,但如果你遇到困难,网上有很多文档。希望这可以帮助!此外,如果您想了解更多内容,我还会根据此处的其他帖子Read/Parse text file line by line in VBA将文件IO基于此处。