O tamanho dos dados no caso é pequeno, R tem muitos pacotes e funções que podem ser utilizados conforme sua necessidade.
write.xlsx, write.xlsx2, XLconnect também fazem o trabalho, mas às vezes são lentos em comparação com openxlsx .
Portanto, se você estiver lidando com grandes conjuntos de dados e se deparar com erros de java. Eu sugeriria dar uma olhada no "openxlsx" que é realmente incrível e reduzir o tempo para 1/12 .
Eu testei todos e finalmente fiquei realmente impressionado com o desempenho dos recursos do openxlsx.
Aqui estão as etapas para gravar vários conjuntos de dados em várias planilhas.
install.packages("openxlsx")
library("openxlsx")
start.time <- Sys.time()
x <- as.data.frame(matrix(1:4000000,200000,20))
y <- as.data.frame(matrix(1:4000000,200000,20))
z <- as.data.frame(matrix(1:4000000,200000,20))
wb <- createWorkbook("Example.xlsx")
Sys.setenv("R_ZIPCMD" = "C:/Rtools/bin/zip.exe")
Sys.setenv ("R_ZIPCMD" = "C: /Rtools/bin/zip.exe") deve ser estático, pois faz referência a algum utilitário do Rtools.
Nota: Incase Rtools não está instalado em seu sistema, instale-o primeiro para uma experiência tranquila. aqui está o link para sua referência: (escolha a versão apropriada)
https://cran.r-project.org/bin/windows/Rtools/
marque as opções conforme o link abaixo (é necessário marcar todas as caixas de seleção durante a instalação)
https://cloud.githubusercontent.com/assets/7400673/12230758/99fb2202-b8a6-11e5-82e6-836159440831.png
addWorksheet(wb, "Sheet 1")
addWorksheet(wb, "Sheet 2")
addWorksheet(wb, "Sheet 3")
writeData(wb, 1, x)
writeData(wb, 2, x = y, withFilter = TRUE)
writeDataTable(wb, 3, z)
saveWorkbook(wb, file = "Example.xlsx", overwrite = TRUE)
end.time <- Sys.time()
time.taken <- end.time - start.time
time.taken
openxlsx pacote é realmente bom para ler e gravar grandes dados de / em arquivos excel e tem muitas opções para formatação personalizada dentro do excel.
O fato interessante é que não precisamos nos preocupar com a memória heap java aqui.
createSheet
função que permite criar novas planilhas e, em seguida, escrever nelas em um loop. Além disso, as funções equivalentes em XLConnect são vetorizadas, permitindo a gravação de uma lista de quadros de dados em várias planilhas.