programing

R의 Openxlsx 패키지를 사용하여 Excel Workbook의 기존 시트를 수정하려면 어떻게 해야 합니까?

golfzon 2023. 5. 9. 23:26
반응형

R의 Openxlsx 패키지를 사용하여 Excel Workbook의 기존 시트를 수정하려면 어떻게 해야 합니까?

"openxlsx" 패키지를 사용하여 엑셀 파일을 읽고 쓰고 있습니다.저는 "데이터"라는 시트가 있는 고정 파일을 가지고 있는데, 이 시트는 다른 시트의 수식에 사용됩니다.다른 데이터 시트를 건드리지 않고 이 데이터 시트를 업데이트하고 싶습니다.저는 다음 코드를 시도하고 있습니다.

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

그러나 이렇게 하면 Excel 파일이 지워지고 "데이터" 시트에 새 데이터만 있는 새 파일이 생성되고 다른 모든 데이터는 삭제됩니다.조언이 있습니까?

사용해 보십시오.

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

전체 워크북을 로드한 다음 데이터를 수정한 다음 디스크에 저장해야 합니다.와 함께writeData시작 행과 열을 지정할 수도 있습니다.또한 디스크에 저장하기 전에 다른 섹션을 수정할 수도 있습니다.

이 소포를 찾았습니다.에 따라 다릅니다.openxlsx여러 시트를 xlsx 파일에 삽입할 수 있습니다.더 쉬워질 수도 있습니다.

패키지 설명서

library(xlsx2dfs)
# However, be careful, the function xlsx2dfs assumes
# that all sheets contain simple tables. If that is not the case,
# use the accepted answer!
dfs <- xlsx2dfs("Revenue.xlsx") # all sheets of file as list of dfs
dfs["Data"] <- Rev_4   # replace df of sheet "Data" by updated df Rev_4
dfs2xlsx(dfs, "Revenue.xlsx") # this overwrites the existing file! cave!

언급URL : https://stackoverflow.com/questions/34172353/how-do-i-modify-an-existing-a-sheet-in-an-excel-workbook-using-openxlsx-package

반응형