Wenn die Datengröße klein ist, verfügt R über viele Pakete und Funktionen, die gemäß Ihren Anforderungen verwendet werden können.
write.xlsx, write.xlsx2, XLconnect erledigen ebenfalls die Arbeit, aber diese sind im Vergleich zu openxlsx manchmal langsam .
Also, wenn Sie mit den großen Datenmengen zu tun haben und auf Java-Fehler gestoßen sind. Ich würde vorschlagen, einen Blick auf "openxlsx" zu werfen was wirklich großartig ist und die Zeit auf reduziert.
Ich habe alle getestet und war schließlich sehr beeindruckt von der Leistung der openxlsx-Funktionen.
Hier sind die Schritte zum Schreiben mehrerer Datensätze in mehrere Blätter.
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") muss statisch sein, da es auf ein Dienstprogramm von Rtools verweist.
Hinweis: Wenn Rtools nicht auf Ihrem System installiert ist, installieren Sie es bitte zuerst, um einen reibungslosen Ablauf zu gewährleisten. Hier ist der Link für Ihre Referenz: (Wählen Sie die entsprechende Version)
https://cran.r-project.org/bin/windows/Rtools/
Aktivieren Sie die Optionen gemäß dem folgenden Link (aktivieren Sie während der Installation alle Kontrollkästchen).
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 Paket eignet sich zum Lesen und Schreiben großer Datenmengen aus / in Excel-Dateien und bietet zahlreiche Optionen für die benutzerdefinierte Formatierung in Excel.
Die interessante Tatsache ist, dass wir uns hier nicht um Java-Heap-Speicher kümmern müssen.
createSheet
Funktion, mit der Sie neue Blätter erstellen und dann in einer Schleife darauf schreiben können. Darüber hinaus werden die entsprechenden Funktionen in XLConnect vektorisiert, sodass eine Liste von Datenrahmen auf mehrere Blätter geschrieben werden kann.