我正在尝试创建一个有光泽的应用程序(使用R Studio)。
我想使用fileInput小部件(名为ffile)从用户读取xlsx或xls文件。但是,我需要它来确保它是正确的文件类型,否则其余代码将无法工作。我了解了validate()和need()函数。所以我这样做是这样的:
data<-reactive({
infile = input$ffile
if (is.null(infile))
return(NULL)
ext<-c('application/vnd.ms-excel','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
o<-is.element(infile$type,ext)
validate(need(o,'Wrong ext. Select .xls, .xlsx or .csv'))
file<-read.xlsx(infile$datapath, 1)
return(file) })
我尝试加载.docx文档,但已成功将其阻止,并根据需要显示警告消息。但是,当我尝试加载正确的.xlsx文件时,它仍然会显示警告消息,而不是实际接受它。我不知道我是否正确使用了验证/需求,或者我不太了解MIME。帮助将不胜感激。
您可以使用参数直接在fileInput
对象中设置接受的MIME :ui.R
accept
fileInput('file1', 'Choose CSV File',
accept=c('application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'.xls',
'.xlsx'))
这只会让用户从打开的文件浏览器窗口中选择excel文件。
在中server.R
,您无需验证即可直接从文件中获取数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句