R &引用;阅读“U excel”;在一个闪亮的应用程序中
我有一个闪亮的应用程序,它使用packageR &引用;阅读“U excel”;在一个闪亮的应用程序中,r,shiny,xlsx,R,Shiny,Xlsx,我有一个闪亮的应用程序,它使用packagexlsx中的read.xlsx功能。一切正常,但我想从readxl改为read\u excel,希望它能更快地处理大文件 用户界面部分: fileInput("inputFile","Upload file...") 服务器部件: data <- reactive({ inFile <- input$inputFile if (is.null(inFile)) { return(NULL) } data
xlsx
中的read.xlsx
功能。一切正常,但我想从readxl
改为read\u excel
,希望它能更快地处理大文件
用户界面部分:
fileInput("inputFile","Upload file...")
服务器部件:
data <- reactive({
inFile <- input$inputFile
if (is.null(inFile)) { return(NULL) }
dataFile <- read_excel(inFile$datapath,sheet=1)
return(dataFile)
})
data这是readxl软件包的一个例子。这里提供的当前解决方法是复制文件数据路径并附加.xlsx
。这是我的机器上的一个工作示例,仅限于使用文件编辑的.xlsx
文件。重命名而不是文件。复制
library(shiny)
library(readxl)
runApp(
list(
ui = fluidPage(
titlePanel("Use readxl"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose xlsx file',
accept = c(".xlsx")
)
),
mainPanel(
tableOutput('contents'))
)
),
server = function(input, output){
output$contents <- renderTable({
inFile <- input$file1
if(is.null(inFile))
return(NULL)
file.rename(inFile$datapath,
paste(inFile$datapath, ".xlsx", sep=""))
read_excel(paste(inFile$datapath, ".xlsx", sep=""), 1)
})
}
)
)
为了确保用户确实上传了.xlsx文件,或者您需要检查自己的扩展名,以便在读取功能之间切换。您可以按如下方式提取扩展名:
library(shiny)
library(readxl)
runApp(
list(
ui = fluidPage(
titlePanel("Use readxl"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose xlsx file',
accept = c(".xlsx")
)
),
mainPanel(
tableOutput('contents'))
)
),
server = function(input, output){
output$contents <- renderTable({
inFile <- input$file1
if(is.null(inFile))
return(NULL)
ext <- tools::file_ext(inFile$name)
file.rename(inFile$datapath,
paste(inFile$datapath, ext, sep="."))
read_excel(paste(inFile$datapath, ext, sep="."), 1)
})
}
)
)
库(闪亮)
图书馆(readxl)
runApp(
名单(
ui=fluidPage(
titlePanel(“使用readxl”),
侧边栏布局(
侧栏面板(
fileInput('file1','Choose xlsx file',
接受=c(“.xlsx”)
)
),
主面板(
tableOutput('contents'))
)
),
服务器=功能(输入、输出){
output$contents您是否在R控制台中使用相同的输入文件尝试过它?是的,在R控制台中它可以工作。您可以使用文件重命名它。重命名?您可能需要手动清理,但这是必需的。
library(shiny)
library(readxl)
runApp(
list(
ui = fluidPage(
titlePanel("Use readxl"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose xlsx file',
accept = c(".xlsx")
)
),
mainPanel(
tableOutput('contents'))
)
),
server = function(input, output){
output$contents <- renderTable({
inFile <- input$file1
if(is.null(inFile))
return(NULL)
ext <- tools::file_ext(inFile$name)
file.rename(inFile$datapath,
paste(inFile$datapath, ext, sep="."))
read_excel(paste(inFile$datapath, ext, sep="."), 1)
})
}
)
)