使用 R shiny 将 sheet 添加到带有操作按钮的预先存在的 excel 文件

Use R shiny to add a sheet to a pre-existing excel file with action button

我有一个名为 testfile.xlsx 的 excel 文件。此文件的第一个 sheet 称为 sheet1。 我已经使用 xlsx 包编写了一个名为 New_Sheet 的新 sheet,如下所示

library(xlsx)
setwd()##set the file path to where testfile.xlsx is located
write.xlsx('new_data', "testfile.xlsx", sheetName="New_Sheet", append=TRUE)

这将添加所需的 sheet。

我创建了以下闪亮的应用程序来将 sheet 写入文件

library(shiny)
library(xlsx)
library(openxlsx)
library(readxl)

ui <- fluidPage(   
titlePanel("Writer App"),
sidebarLayout(sidebarPanel(fileInput(inputId = "file", label = "Read File Here", accept = 
c(".xlsx")),actionButton(inputId = "Run", label = "Write Data to Table")),
mainPanel(dataTableOutput(outputId = "table1"))))

server <- function(input, output) {
datasetInput <- reactive({
infile<- input$file
if (is.null(infile))
  return(NULL)    
#READ .XLSX AND .CSV FILES
if(grepl(infile, pattern = ".xlsx" )==T){
  data=read_excel(infile$datapath)
} else if(grepl(infile , pattern = ".csv" )==T)
{data=read.csv(infile$datapath )}

#RENAME DATAFRAME WITH UNDERSCORES
names(data)<-gsub(pattern = " ", replacement = "_", x =  names(data))
return(data) })
output$table1 <- renderDataTable({    
datasetInput()})

observeEvent(input$Run,{    
infile<-input$file
testfile<-(infile[1])
filepath<-(input$file)
filepath<-gsub(pattern = "0.xlsx", replacement ="" , x = filepath)    
# print(infile$datapath[1])
print(filepath)
print(testfile)    
setwd(dir = filepath)
write.xlsx('new_data', testfile, sheetName="New_Sheet3", append=TRUE)})
}

shinyApp(ui = ui, server = server)

应用程序将 excel sheet 中的数据呈现为 table 没有任何问题 .当我们按下 运行 应用程序按钮时,打印命令会生成文件名和文件路径。 write excel 函数不起作用。有没有办法使用操作按钮插入 new_data sheet。我请求有人在这里指导我。

我建议改用 downloadHandlerSee here 举个例子。