Разделитель тысяч (и десятичная «точка» и т. Д.) Записываются в файл XLS независимо от локали. Записанный разделитель тысяч - это запятая. Как это отображается, зависит от локали пользователя. OpenOffice calc позволяет пользователю переопределить локаль по умолчанию (Инструменты / Параметры / Языки / Настройка локали).
С xlwt напишите ваш num_format_str как "#,###.00"
, а ваши данные как float("1234567.89")
, например:
import xlwt
b = xlwt.Workbook()
s = b.add_sheet('x')
style = xlwt.easyxf("", "#,###.00")
s.write(0, 0, 1234567.89, style)
b.save("locale_fmt_demo.xls")
Откройте выходной файл с помощью OO Calc и попробуйте различные настройки локали. Я получил эти результаты:
English (Australia): 1,234,567.89
Portuguese (Brazil): 1.234.567,89
French (France): 1 234 567,89