【问题标题】:Select Multiple rows from Data Table and Save in GoogleSheets从数据表中选择多行并保存在 Google 表格中
【发布时间】:2020-06-07 18:30:48
【问题描述】:

我正在开发一个从 API 提取数据的应用程序。我的下一个目标是单击数据表中的多行并将所有选定的行保存在连接的 Google 表格中,这就是我卡住的地方。我不知道如何以将数据存储在另一个变量中的方式选择数据,然后我可以将其发送到 Google 表格或另一个数据库。

library(shiny)
library(jsonlite)
library(tidyverse)
library(shinydashboard)
library(DT)

ui <- dashboardPage(
    dashboardHeader(title = "APPLICATION"),
    dashboardSidebar(
        sidebarMenu(
            menuItem('Menu', tabName='menu',
                     menuSubItem('Select Data', tabName='tab1'),
                     menuSubItem('Selected Data', tabName='tab2')
            )
        )
    ),

    dashboardBody(

        tabItems(
            tabItem(tabName='tab1',
                    textInput('usernameinput', 'Username:', 'Username'),
                    actionButton("search", "Search", class = "btn btn-info"),
                    br(),
                    tags$div(tags$h3(tags$b(" Select Data",align="middle",style="color: rgb(57,156,8)"))),
                    br(),
                    DT::dataTableOutput('table')
            ),
            tabItem(tabName='tab2'
            )
        )
    )
)

server <- function(input, output, session) {

    observeEvent(input$search, {
    url <- paste0("https://API-LINK/", input$usernameinput)
    link <- fromJSON(url, flatten=T)
    data <- as.data.frame(link$results)


    output$table <- renderDataTable({

        DT::datatable(data,selection = "multiple",

                      extensions = c('Buttons', 'ColReorder', 'FixedHeader', 'Scroller'),
                      rownames=FALSE,
                      options=list(dom = 'Bfrtip',
                                   searching = T,
                                   pageLength = 25,
                                   searchHighlight = TRUE,
                                   colReorder = TRUE,
                                   fixedHeader = TRUE,
                                   filter = 'bottom',
                                   buttons = c('copy', 'csv','excel', 'print'),
                                   paging    = TRUE,
                                   deferRender = TRUE,
                                   scroller = TRUE,
                                   scrollX = TRUE,
                                   scrollY = 700
                                   ))
                                }) 

    })
    # print the selected indices
    output$selected = renderPrint({
        s = input$ListingID
        if (length(s)) {
            cat('These rows were selected:\n\n')
            cat(s, sep = ', ')
        }
    })
}

shinyApp(ui, server)

【问题讨论】:

    标签: r datatable shiny dt


    【解决方案1】:

    关于访问和操作数据...

    1 - 您是在尝试创建客户/用户可以使用的应用程序,还是在尝试收集数据以供自己使用/分析?

    2 - 是通过 API 获取数据的唯一途径吗?

    3 - 数据是在 MS SQL 数据库还是 MySQL 中,或者您是在抓取数据还是什么?

    4 - 您可以登录数据库并使用诸如 phpMyAdmin 或 MySQL 工作台之类的工具吗?

    5 - 使用 API,您可以获取任何形式的数据...例如显示在屏幕上或下载它或什么?

    【讨论】:

    • 1.它供我使用,2.API 是唯一的选择,3.Data 是 JSON 4.否 5.是的,您可以转换任何形式的 JSON 数据,例如。 CSV、Excel,随心所欲
    • 获取数据并将其下载为 csv 文件。手动将其导入 Google 表格。或者通过 Macros 创建一个 Google Sheet Macro 来记住击键...或者使用 Apps Script
    • 创建 R Shiny 应用程序的想法是简化所有工作,包括为不同进程下载或运行宏。我正在寻找一种解决方案来帮助我从数据表中选择多行并将数据存储在要发送到 Google 工作表的变量中。 “选择多行”并将它们存储在变量中是唯一的部分。
    • 我的错。我通常只用 Notepad++ 编写原始代码,而且对所有的软件快捷工具都不熟悉。希望其他人会跳起来并帮助您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多