set default value from source using validate as list in data_validation() method of xlsxwriter in python?

excel, python, python-3.x, python-module, xlsxwriter

Solution

As far as I know there isn't an option in Excel to have a default value in a drop-down data validation. Hence it isn't supported by XlsxWriter.

However, you can just write the default value to the same cell as the data validation in XlsxWriter. For example:

import xlsxwriter

workbook = xlsxwriter.Workbook('data_validate.xlsx')
worksheet = workbook.add_worksheet()

worksheet.data_validation('B3', {'validate': 'list',
                                 'source': ['Completed',
                                            'Pending',
                                            'Script Error']})

worksheet.write('B3', 'Pending')                                        


workbook.close()

Output:

Problem

I have created an excel sheet using xlsxwriter module in python. I am trying to set a default value for the drop down list created with data_validation() method of xlsxwriter. However, according to the documentation of xlsxwriter, it has no default value if we use validate as list. ``` sheet.data_validation('G5', {'validate': 'list', 'source': ['Completed', 'Pending', 'Script Error']}) ``` Can anyone suggest me some work around to have a default value and drop down list in the same cell?

Original source