Вы можете добавить дополнительную функцию (addRow) к объекту Worksheet где-то в вашем коде.
def addRowToXls(self, data, row = 0):
for colNum, value in enumerate(data):
self.write(row, colNum, value)
Таким образом, вы можете легко добавлять строки (независимо от количества столбцов в нем) на лист, например:
worksheet.addRow(data = ["Column 1 text", "Column 2 text", "And so on..."], row = 3) # add to row 4
Так что в вашем случае весь код будет таким, я думаю
import xlsxwriter
def addRowToXls(self, data, row = 0):
for colNum, value in enumerate(data):
self.write(row, colNum, value)
xlsxwriter.worksheet.Worksheet.addRow = addRowToXls
workbook = xlsxwriter.Workbook("new_file.xlsx") # new xlsx file
worksheet = workbook.add_worksheet()
worksheet.addRow(data = ["column 1 header text", "column 2 header text", "and so on..."]) # you can skip this
row_save = 1 # start from 0, if you skip column headers
with open('filter_pre.txt', 'rt+') as Pre_logs: # text file to read from
lines = Pre_logs.readlines()
for line in lines:
worksheet.addRow(data = line.split(" "), row = row_save) # used space as seperator
row_save += 1
workbook.close()
Протестировано. Работает как положено.