Как записать фрейм данных строковых значений в файл Excel в виде форматированных числовых значений?
В основном у меня есть список строковых значений, которые предназначены для преобразования в числовые и печати на листе Excel. Я уже могу это сделать, но я хочу, чтобы эти значения были напечатаны как «числовые значения Excel» . Вот что у меня получилось:
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
listOfValues = ['3913375,45','126179,15','22324,72','26335,28','3699901,34']
df_values = pd.DataFrame({'TOTAL': listOfValues}).apply(pd.to_numeric)
df_values.to_excel(writer, sheet_name='test')
writer.save()
Мой результат:
Результирующий Excel
Но я хочу, чтобы он был напечатан как числовые значения, разделенные точками, чтобы облегчить подготовку, например:
Что я хочу получить в результате
(Решение, которое я хочу, не может быть напечатано в виде строк в результирующем Excel, оно должно быть числовым, как если бы мы использовали опцию «Форматировать как число (Shift + ctrl + 1)» в libreoffice calc).
(Я использую Python 3.8.5 и LibreOffice Calc для тестирования, но результат предназначен для работы в Excel 2016).
Это возможно? Спасибо за вашу помощь и извините за мой английский!
Ответы
Я нашел этот другой вопрос , он другой, но ответ, я думаю, тот же.
from openpyxl import load_workbook
wb = load_workbook('a.xlsx')
ws = wb[wb.sheetnames[0]]
cell11 = ws.cell(1, 1)
cell11.number_format = '#,##0.00'
wb.save('b.xlsx')
wb.close()
Он работает с этим форматом, но похоже, что он не работает с '#.##0,00'
форматом
Проверь это https://xlsxwriter.readthedocs.io/working_with_pandas.html
Можно отформатировать любые другие данные столбца без даты / даты и времени с помощью set_column ()
Попробуйте изменить код примера форматирования следующим образом:
format1 = workbook.add_format({'num_format': '#,##0.00'})
к этому:
format1 = workbook.add_format({'num_format': '#.##0,00'})