首页 > 解决方案 > 使持久本地存储中的数据可编辑

问题描述

我正在创建一个闪亮的应用程序,其中包含来自Dean Attali 博客的本地持久数据,如以下部分所示:1. 本地文件系统(本地)。

我的问题是,是否可以使数据可编辑并从本地驱动器重新加载?

聚合来自输入的数据

formData <- reactive({
    #data <- sapply(fieldsMandatory, function(x) input[[x]])
    formdata <- c("Associate Name" = input$aname,"Client Name" = input$cname,"Project"=input$project,
                  "Associate Client Email"=input$cemail,
                  "Ask By Customer"=input$ask,"Project Type"=input$type,"Billing"=input$bill,"Remarks"=input$rem ,
                  "Completion Date" = as.character(input$date), "Website status" = input$status )
    formdata <- t(formdata)
    formdata
  })

将数据保存到 csv(每次提交时都会创建一个单独的文件)

saveData <- function(formdata) {
    fileName <- sprintf("%s_%s.csv",
                        humanTime(),
                        digest::digest(formdata))

    write.csv(x = formdata, file = file.path(responsesDir, fileName),
              row.names = FALSE, quote = TRUE)
}

加载数据(绑定所有包含响应的 csv)

Data <- reactive( {
    # Read all the files into a list
    files <- list.files(responsesDir, full.names = TRUE)
    data <- lapply(files, read.csv, stringsAsFactors = FALSE)
    # Concatenate all data together into one data.frame
    data <- do.call(rbind, data)
    return(data) 
}

在表格中显示数据

output$responses <- DT::renderDataTable({
    Data()
})

我想知道我们是否可以在保存表单输入的同时制作单个 CSV 文件并使其可编辑以更新值。我最大的困难是保存功能,当我们提交复杂的表单以获取特定行进行编辑时,它会创建一个单独的 CSV 文件。

显示数据的 UI

DT::DTOutput("responses"),style = "height:auto; overflow-y: scroll;overflow-x: scroll;"),

任何帮助将不胜感激

标签: shinyshinydashboardshinyappsshiny-reactivity

解决方案


推荐阅读