Rahul Issar
Rahul Issar

Reputation: 21

Passing a data source dynamically in xlsxwriter

I tried the below code in python to validate cells in excel from a list. This does not work unfortunately.

test2=(range(1,count+2)) #Using a dynamic range based on no. of rows i.e. count in a df
c=zip(test2,mod_source) #mod source contains range of cells to pick up data source
#length of test 2 & mod source is same.

list(c) gives an output as below:

 [(1, '=Dropdowns!$J$2:$J$1000'),
     (2, '=Dropdowns!$V$2:$V$1000'),
     (3, '=Dropdowns!$T$2:$T$1000'),
     (4, '=Dropdowns!$W$2:$W$1000'),
     (5, '=Dropdowns!$A$2:$A$1000'),
     (6, '=Dropdowns!$B$2:$B$1000'),
     (7, '=Dropdowns!$C$2:$C$1000'),
     (8, '=Dropdowns!$P$2:$P$1000'),
     (9, '=Dropdowns!$H$2:$H$1000'),
     (10, '=Dropdowns!$Y$2:$Y$1000'),
     (11, '=Dropdowns!$AA$2:$AA$1000'),
     (12, '=Dropdowns!$AB$2:$AB$1000'),
     (13, '=Dropdowns!$AC$2:$AC$1000'),
     (14, '=Dropdowns!$AD$2:$AD$1000'),
     (15, '=Dropdowns!$AE$2:$AE$1000'),
     (16, '=Dropdowns!$AF$2:$AF$1000'),
     (17, '=Dropdowns!$AH$2:$AH$1000'),
     (18, '=Dropdowns!$AI$2:$AI$1000'),
     (19, '=2:000')]

Final code:

for row_num,formula in c:

 worksheet4.data_validation(row_num-1,3,row_num,3,{'validate':'list', 'source':formula})
 
writer.save()

Upvotes: 1

Views: 196

Answers (1)

Rahul Issar
Rahul Issar

Reputation: 21

turns out the code did not work as '=2:000' is not really a source for data_validation method. What I did was:

for row_num, formula in c:
        if formula == '=2:000':
            continue
        worksheet4.data_validation(row_num-1,3,row_num-1,3,{'validate':'list', 'source':formula})    
    writer.save()

Upvotes: 1

Related Questions