I want to use the openxlsx package to create an xlsx file containing graphs on docker / shinyserver.
First, I checked if I could create an xlsx file containing graphs on docker. I ran r-base on docker with the following command.
docker run -ti --rm r-base bash
openxlsx
After installing openxlsx
packages, I executed the following openxlsx_test.R
file with the following command.
Rscript --verbose openxlsx_test.R
library(openxlsx)
## Create a new workbook
wb <- createWorkbook()
addWorksheet(wb, "Sheet1")
#Plot example
plot(iris[, 1], iris[, 2])
#Insert
insertPlot(wb, 1, width = 5, height = 3.5, fileType = "png", units = "in")
## Save workbook
saveWorkbook(wb, "Test.xlsx", overwrite = TRUE)
However, the following error occurred and the xlsx file could not be created. However, the Rplots.pdf
file was generated.
running
'/usr/lib/R/bin/R --no-echo --no-restore --file=openxlsx_test.R'
Error in insertImage(wb = wb, sheet = sheet, file = fileName, width = width, :
File does not exist.
Calls: insertPlot -> insertImage
Execution halted
Doing the same in R on Windows will successfully draw the graph in the xlsx file.
I'm not familiar with Linux or docker so I'm not sure, but I think it's because docker doesn't have a graphics device, but I don't know the solution.