我想使用XlsxWriter将数据写入Excel列。一个'设置'每次迭代都会写入数据。每组应该写在一个单独的列中。我该怎么办?
我尝试使用col
值,如下所示:
[1]
我在循环外定义i=0
,然后将其增加1
并设置col=i
。完成此操作后,输出为空白。对我来说,这是最合乎逻辑的解决方案。我不知道为什么它不会工作。 [2]
i
内定义了循环内容。发生这种情况时会写入一列。 [3]
我以标准方式定义col
。这按预期工作:写一列。 我的代码:
import xlsxwriter
txt_file = open('folder/txt_file','r')
lines = dofile.readlines()
# [1]Define i outside the loop. When this is used output is blank.
i = 0
for line in lines:
if condition_a is met:
#parse text file to find a string. reg_name = string_1.
elif condition_b:
#parse text file for a second string. esto_name = string_2.
elif condition_c:
#parse text file for a group of strings.
# use .split() to append these strings to a list.
# reg_vars = list of strings.
#[2] Define i inside the loop. When this is used one column gets written. Relevant for [1] & [2].
i+=1 #Increment for each loop
row=1
col=i #Increments by one for each iteration, changing the column.
#[3] #Define col =1. When this is used one column also gets written.
col=1
#Open Excel
book= xlsxwriter.Workbook('folder/variable_list.xlsx')
sheet = book.add_worksheet()
#Write reg_name
sheet.write(row, col, reg_name)
row+=1
#Write esto_name
sheet.write(row, col, esto_name)
row+=1
#Write variables
for variable in reg_vars:
row+=1
sheet.write(row, col, variable)
book.close()
答案 0 :(得分:0)
您可以使用XlsxWriter write_column()方法将数据列表编写为列。
但是,在这种特殊情况下,问题似乎是每次通过循环的xlsxwriter.Workbook()
部分时,都会通过condition_c
创建一个新的重复文件。因此,使用col
的最后一个值,下次循环时将覆盖整个文件。
您可能应该在循环外部移动xlsx文件的创建。可能与open()
文本文件位于同一位置。