Стиль валюты openxlsx - есть ли возможность округления? - PullRequest
0 голосов
/ 18 мая 2018

Функция createStyle в пакете openxlsx имеет аргумент numFmt, который позволяет создавать формат Excel, который будет применяться к определенным ячейкам в файле .xlsx.Вы можете округлить значения, указав numFmt = '0', и вы можете применить формат валюты, указав numFmt = "CURRENCY".

Можно ли указать формат округленной валюты?Я пробовал следующее:

  • Округление значений во фрейме данных не работает, потому что в ячейках Excel по-прежнему отображаются центы, например $103.00.
  • numfmt = 'CURRENCY0'не работает

Если нет, есть ли другой пакет, который позволяет указывать форматы ячеек Excel и позволяет округлять ячейки в формате валюты?

Редактировать:

Это дает мне то, что я хотел (формат валюты, с запятыми, без центов)

createStyle(numFmt="$0,0")

1 Ответ

0 голосов
/ 18 мая 2018

Вы можете установить numFmt="$0", чтобы получить округленные значения в валюте.Например:

library(openxlsx)

mtcars$hp = 100 * mtcars$hp

wb = createWorkbook()
sht = addWorksheet(wb, "test")
writeData(wb, sht, mtcars)

sty1 = createStyle(numFmt="$0")
sty2 = createStyle(numFmt="$0.00")
sty3 = createStyle(numFmt="$0,0.00")

addStyle(wb, sht, sty1, rows=2:(nrow(mtcars)+1), cols=1)
addStyle(wb, sht, sty2, rows=2:(nrow(mtcars)+1), cols=5)
addStyle(wb, sht, sty3, rows=2:(nrow(mtcars)+1), cols=4)

saveWorkbook(wb, "test.xlsx")

Вот как выглядит итоговый файл Excel:

enter image description here

...