我正在开发一个shinyapp,允许用户上传他们的数据。经常发生的情况是数据表没有存储在第一个位置,因此没有上传预期的表。
一种解决方法是指定预期的数据必须存储在第一个位置,但我想知道是否有一种方法可以从工作表中选择。我想这将是一个三步的过程:
1.以通常的方式上传excel文件,使用{readxl}
,例如
dat_raw <- reactive({
req(input$file)
readxl::read_excel(input$file$datapath)
}
})
1.使用readxl::excel_sheets()
存储工作表名称,并在下拉菜单中显示这些名称,可能使用observe
和updateSelectInput
,例如
observe({
updateSelectInput(
session = session,
inputId = "sheetnames",
choices = SHEETNAMES)
)
})
1.以某种方式使用选定的工作表名称来告诉应用程序然后读取哪些数据(可能需要另一次上传)或处理哪些数据(如果所有工作表都已存储在内存中)。
我已经广泛搜索,找不到其他地方提出的这个问题。我很感激你能提供的任何帮助
1条答案
按热度按时间jtw3ybtb1#
我想这样做。创建一个名为
Dat
的reactiveVal
来存储上传的工作表。然后执行(sweetalert的内容来自shinyWidgets包):