Rozmiar danych Incase jest niewielki, R ma wiele pakietów i funkcji, które można wykorzystać zgodnie z wymaganiami.
write.xlsx, write.xlsx2, XLconnect również działają, ale czasami są one powolne w porównaniu do openxlsx .
Tak więc, jeśli masz do czynienia z dużymi zestawami danych i napotkałeś błędy Java. Proponuję spojrzeć na „openxlsx”, co jest naprawdę niesamowite i skrócić czas do 1/12.
Przetestowałem wszystko i ostatecznie byłem pod wielkim wrażeniem wydajności możliwości openxlsx.
Oto kroki, aby zapisać wiele zestawów danych w wielu arkuszach.
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") musi być statyczny, ponieważ pobiera odniesienie do jakiegoś narzędzia z Rtools.
Uwaga: narzędzie Incase Rtools nie jest zainstalowane w twoim systemie, zainstaluj go najpierw, aby uzyskać płynne działanie. tutaj jest link do twojego odniesienia: (wybierz odpowiednią wersję)
https://cran.r-project.org/bin/windows/Rtools/
sprawdź opcje zgodnie z poniższym linkiem (podczas instalacji należy zaznaczyć wszystkie pola wyboru)
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
openxlsxPakiet jest naprawdę dobry do czytania i zapisywania ogromnych danych z / w plikach Excela i ma wiele opcji niestandardowego formatowania w programie Excel.
Ciekawostką jest to, że nie musimy się tutaj przejmować pamięcią stosu Java.
createSheet
funkcja, która pozwala tworzyć nowe arkusze, a następnie pisać do nich w pętli. Dodatkowo równoważne funkcje w XLConnect są wektoryzowane, co pozwala na zapisywanie listy ramek danych na wielu arkuszach.