2015-12-09 3 views
11

Sto usando il pacchetto "openxlsx" per leggere e scrivere file excel. Ho un file fisso con un foglio chiamato "Dati" che viene utilizzato da formule in altri fogli. Voglio aggiornare questa scheda tecnica senza toccare l'altra. Sto cercando il seguente codice:Come si modifica un foglio esistente in una cartella di lavoro di Excel utilizzando il pacchetto Openxlsx in R?

write.xlsx(x = Rev_4, file = "Revenue.xlsx", sheetName="Data") 

Ma questo cancella il file excel e crea uno nuovo con solo i nuovi dati nella scheda "Dati", mentre tutto il resto viene eliminato. Qualche consiglio?

+0

Non riesco a testarlo nel computer che sto usando al momento, ma hai provato a utilizzare l'argomento 'append = TRUE'? – leosz

+1

L'opzione "append = T" sembra assente con il pacchetto "openxlsx". So che è presente nel pacchetto "xlsx" basato su java, ma il pacchetto è lento e esaurisce rapidamente la memoria con file più pesanti. Ho un modo più noioso per aggirarlo, ma sarà fantastico se potessi avere una soluzione basata su "openxlsx". –

risposta

12

Prova questa:

wb <- loadWorkbook("Revenue.xlsx") 
writeData(wb, sheet = "Data", Rev_4, colNames = F) 
saveWorkbook(wb,"Revenue.xlsx",overwrite = T) 

È necessario caricare la cartella di lavoro completa, quindi modificare i propri dati e poi salvarlo su disco. Con writeData puoi anche specificare la riga iniziale e la colonna. E potresti anche modificare altre sezioni prima di salvare su disco.