programing

XL Connect with R Shiny에서 Excel 파일 다운로드

lastcode 2023. 9. 24. 12:54
반응형

XL Connect with R Shiny에서 Excel 파일 다운로드

R Shiny에서 다운로드 핸들러를 사용하여 XLConnect로 새로 만든 엑셀 파일을 다운로드해 본 사람이 있습니까?

UI에서.R에는 주목할 만한 선이 없습니다.

downloadButton('downloadData', 'Download')

서버에서.처리자가 있습니다.

output$downloadData <- downloadHandler(

filename = function() { "output.xlsx" },

    content = function(file){
      wb <- loadWorkbook(file, create = TRUE)
      createSheet(wb, name = "Sheet1")
      writeWorksheet(wb, c(1:3), sheet = "Sheet1") # writes numbers 1:3 in file
      saveWorkbook(wb)
    }
)

저는 .csv를 다운받는데 문제가 없고 XLConnect로 엑셀 파일을 만드는 데 문제가 없습니다.그러나 위와 같이 코드를 실행하면 Chrome 브라우저에서 다음과 같은 오류가 발생합니다.

불법 논변예외(자바):파일 확장명 "file1b683b9323bc"는 지원되지 않습니다!*.xls 및 *.xlsx만 사용할 수 있습니다!

제가 보기에 XLConnect는 임시 파일에 쓸 수 없습니다.

해결책이나 해결책이 있는 사람?

한 가지 방법은 특정 위치에 파일을 저장한 다음 해당 파일을 가리키는 다운로드 링크를 만드는 것입니다.하지만, 이것은 여러 사용자들이 하복을 야기할 수 있기 때문에 그다지 빛나는 것 같지는 않습니다.

대단히 고맙습니다

마커스

이것을 사용해 보십시오.content(...)기능; 나한테 효과가 있어요...

content = function(file){
      fname <- paste(file,"xlsx",sep=".")
      wb <- loadWorkbook(fname, create = TRUE)
      createSheet(wb, name = "Sheet1")
      writeWorksheet(wb, c(1:3), sheet = "Sheet1") # writes numbers 1:3 in file
      saveWorkbook(wb)
      file.rename(fname,file)
    }

문제는.file는 확장자가 없는 임의로 생성된 임시 파일인 반면saveWorkbook(...)필요한 것은.xlsx내선그래서 이것은 그냥 추가됩니다..xlsx로.file그리고 모든 XL Connect 조작에 대해 이를 사용한 다음 최종 파일의 이름을 원래 이름으로 바꿉니다(예: 확장자를 제거).

언급URL : https://stackoverflow.com/questions/21383748/downloading-excel-file-from-xlconnect-with-r-shiny

반응형