Функция XLSXWriter и Excel «= SORT ()»? - PullRequest
2 голосов
/ 31 марта 2020

Я узнал в этом посте об использовании XLSXWriter для добавления функции =FILTER() в рабочую книгу.

Теперь я пытаюсь добавить функцию =SORT(). До сих пор я пробовал это:

worksheet.write_array_formula('H2', '=_xlfn._xlws.SORT(A2:F16, 6, -1)')

... но SORT не выглядит формулой массива. Я также пробовал это:

worksheet.write_formula('H2', '=_xlfn.SORT(A2:F16, 6, -1)')

worksheet.write_formula('H2', '=_xlfn._xlws.SORT(A2:F16, 6, -1)')

Формула появляется на листе, но вместо:

=SORT(A2:F16, 6, -1)

... она выглядит как:

=@SORT(A2:F16, 6, -1)

Как я могу это исправить?

1 Ответ

2 голосов
/ 31 марта 2020

Это похоже на другой ответ, на который вы ссылались, и ваша первая попытка почти верна. Я думаю, вам просто нужно указать диапазон, к которому применяется формула диапазона:

import xlsxwriter

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

worksheet.write_array_formula('H2:M16', 
                              '=_xlfn._xlws.SORT(A2:F16, 6, -1)')

workbook.close()

Выход :

enter image description here

...