Python:将列表写入Excel中的行

问题描述 投票:-1回答:1

我正在尝试从文本文件中读取数据,为该文本文件中包含的所有内容创建一个长字符串,然后按空格将其分割。然后,我尝试将按空格分割的列表发送到printStringArray,并将其打印到Excel工作表中。我在弄清楚如何跟踪应将数据输入到哪行和列时遇到了麻烦。

rowNum = 1

def createStringArray(theFilePath):
    theFinalString = ""
    with open(theFilePath) as file_in:
        for line in file_in:
            lineToString = str(line)
            theCompleteString = lineToString.split()
            printStringArray(theCompleteString)


def printStringArray(theStringArray):
    with xlsxwriter.Workbook('testingThis.xlsx') as workbook:
        worksheet = workbook.add_worksheet()
        colNum = 1
        global rowNum
        for data in theStringArray:
            worksheet.write(rowNum, colNum, data)
            colNum = colNum + 1
    rowNum = rowNum + 1 

编辑:

def printStringArray(theStringArray):
    with xlsxwriter.Workbook('testingThis.xlsx') as workbook:
        worksheet = workbook.add_worksheet()
        colNum = 0
        global rowNum
        for data in theStringArray:
            worksheet.write(rowNum, colNum, str(data))
            print(rowNum)
            print(colNum)
            print(data)
            colNum = colNum + 1
    rowNum = rowNum + 1

我添加了一些prints来查看我出了问题的地方,但是所有数字都是rowNumcolNumdata的确切数字。现在,它仅打印最后一行。enter image description here

编辑#2

rowNum = 0
with xlsxwriter.Workbook('testingThis.xlsx') as workbook:
    worksheet = workbook.add_worksheet()

def createStringArray(theFilePath):
    theFinalString = ""
    with open(theFilePath) as file_in:
        for line in file_in:
            lineToString = str(line)
            theCompleteString = lineToString.split()
            printStringArray(theCompleteString)
            for aString in theCompleteString:
                theFinalString = theFinalString + aString + "--"
    print(theFinalString)


def printStringArray(theStringArray):
    colNum = 0
    global rowNum
    worksheet.write(15, 15, "Aapple")
    for data in theStringArray:
        worksheet.write(rowNum, colNum, str(data))
        print(rowNum)
        print(colNum)
        print(data)
        colNum = colNum + 1
    rowNum = rowNum + 1
python xlsxwriter
1个回答
0
投票

这是我的权限,它读取文本文件并将内容写入Excel工作表,也许可以帮上忙。

我使用write_row()函数将字符串列表写入一行。这样,我就不需要照顾正确的列号。

import xlsxwriter

#  read textfile line by line
with open(path2txt, 'r') as txtfile:
    lines_raw = txtfile.readlines()

#  remove newline and whitespace on every line
lines = [line.strip() for line in lines_raw]

#  write lines to worksheet, 
#  here we use "write_row()" to write the list of words column by column
with xlsxwriter.Workbook('test.xlsx') as workbook:
    sheet = workbook.add_worksheet()
    row, col = 0, 0
    for line in lines:
        parts = line.split()
        if len(parts)>0:  # only write nonempty lines
            sheet.write_row(row, col, parts)
            row += 1
© www.soinside.com 2019 - 2024. All rights reserved.