我使用 Timevis 包。首先,我閱讀了一個帶有任務的excel檔案。在我的代碼中,用戶可以看到時間線上的所有任務,他可以編輯/添加/洗掉任何任務。用戶進行更改后,我可以看到下面的更新表。我想將用戶所做的每次更新都保存到我的 excel 檔案中。這是我的代碼:
library(shiny)
my_df <- read_excel("x.xlsx")
data <- data.frame(
id = my_df$id,
start = my_df$start
end = my_df$end
content = my_df$content
)
ui <- fluidPage(
timevisOutput("appts"),
tableOutput("table")
)
server <- function(input, output) {
output$appts <- renderTimevis(
timevis(
data,
options = list(editable = TRUE, multiselect = TRUE, align = "center")
)
)
output$table <- renderTable(
input$appts_data
)
}
shinyApp(ui, server)
uj5u.com熱心網友回復:
您可以使用actionButton/observe呼叫saveworkbook(包openxlsx)來保存您的更改。從技術上講,您不是保存這些更改,而是用包含更改的相同檔案替換該檔案。
library(shiny)
library(openxlsx)
library(timevis)
library(readxl)
my_df <- read_excel("x.xlsx")
data <- data.frame(
id = my_df$id,
start = my_df$start,
end = my_df$end,
content = my_df$content
)
mypath = paste0(getwd(), "/x.xlsx") # Path to x.xlsx
ui <- fluidPage(
timevisOutput("appts"),
tableOutput("table"),
actionButton("save", "Save")
)
server <- function(input, output) {
output$appts <- renderTimevis(
timevis(
data,
options = list(editable = TRUE, multiselect = TRUE, align = "center")
))
observeEvent(input$save,
{
my_df<- createWorkbook()
addWorksheet(
my_df,
sheetName = "data"
)
writeData(
wb = my_df,
sheet = "data",
x = input$appts_data,
startRow = 1,
startCol = 1
)
saveWorkbook(my_df, file = mypath,
overwrite = TRUE)
})
output$table <- renderTable(
input$appts_data
)
}
shinyApp(ui, server)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/343060.html
上一篇:使用purr包回圈Dunn的測驗
