С xlsxwriter: рабочий лист data_validation со строками преобразует запятую в \ n - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь использовать xlsxwriter для создания выпадающего списка строк в некоторых ячейках. В этом списке строк у меня есть «Float [0,1]», но когда я открываю созданный файл Excel, эта строка разбивается на «Float [0» и «1]».

Как мне получить строку с комой в выпадающем списке?

Я пытался использовать "" "Float [0,1]" "", но это ничего не меняет.

Вот что я написал:

df1 = pd.DataFrame({'Data': [11, 12, 13, 14], 'Type':[None, None, None, None], 'Len':[2,2,2,2]})
out_path = r'C:\Users\Me\Documents\Tests.xlsx'
writer = pd.ExcelWriter(out_path , engine='xlsxwriter')
df1.to_excel(writer, sheet_name='Sheet1', index=False)
workbook  = writer.book

worksheet = writer.sheets['Sheet1']
    for i in range(2,len(df1)+2):
        cell = ''.join(['B' , str(i)])
        worksheet.data_validation(cell, {'validate': 'list', 'source': ['Boolean', 'Calculated value', 'Choice string', 'Float', 'Float [0,1]', 'Float < 0', 'Float <= 0', 'Float > 0', 'Float >= 0', 'Integer', 'Integer >= 0', 'Integer > 0']})  

Заранее спасибо!

1 Ответ

0 голосов
/ 05 июля 2018

У меня есть «Float [0,1]», но когда я открываю созданный файл Excel, эта строка разбивается на «Float [0» и «1]».

Это то же поведение, что и в Excel, если вы ввели строку Float [0,1] вручную при проверке данных в стиле списка.

В этом контексте Excel рассматривает запятую как разделитель списка, поэтому она разбивает строку на две части.

Единственный обходной путь (который я знаю) - поместить значения списка в ячейки и ссылаться на них как формулу диапазона в проверке данных. Вы можете поместить значения проверки на другой лист или в скрытый столбец.

...