Je veux écrire des données dans des colonnes Excel à l'aide de XlsxWriter. Un "ensemble" de données est écrit pour chaque itération. Chaque ensemble doit être écrit dans une colonne distincte. Comment dois-je m'y prendre ?
J'ai essayé de jouer avec le col
comme suit :
- Sur
[1]
Je définisi=0
en dehors de la boucle et l'incrémenter ensuite de1
et mettrecol=i
. Lorsque cela est fait, la sortie est vide. Pour moi, c'est la solution la plus logique et je ne sais pas pourquoi elle ne fonctionne pas. - Sur
[2]
i
est défini à l'intérieur de la boucle. Lorsque cela se produit, une colonne est écrite. - Sur
[3]
Je définiscol
la manière standard. Cela fonctionne comme prévu : Une colonne est écrite.
Mon code :
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()