Динамическая передача источника данных в xlsxwriter - PullRequest
1 голос
/ 10 июля 2020

Я попробовал приведенный ниже код в python для проверки ячеек в excel из списка. К сожалению, это не работает.

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) дает вывод, как показано ниже:

 [(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')]

Окончательный код:

for row_num,formula in c:

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

1 Ответ

1 голос
/ 10 июля 2020

оказывается, что код не работает, поскольку '= 2: 000' на самом деле не является источником для метода data_validation. Я сделал следующее:

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()
...