【发布时间】:2016-06-15 08:56:12
【问题描述】:
我在闪亮的应用程序中有一段 R 代码,它基本上触发了一个在 excel 中运行宏的 shell 脚本:
path_to_vbs_file = "www/Macro_Trigger.vbs"
shell(shQuote(normalizePath(path_to_vbs_file)), "cscript", flag = "//nologo")
.vbs 代码是:
Option Explicit
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBook
Dim fso
Dim curDir
Set xlApp = CreateObject("Excel.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
curDir = fso.GetParentFolderName(wscript.ScriptFullName)
Set xlBook = xlApp.Workbooks.Open(curDir & "\KPI_Report.xlsm", 0, False)
xlApp.Application.Visible = False
xlApp.DisplayAlerts = False
xlApp.Run "ConvertTextToNumber"
xlApp.ActiveWorkbook.SaveAs curDir & "\KPI_Report.xlsm"
xlApp.ActiveWorkbook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
代码在本地 Windows 操作系统上运行良好,但在 shinyapps.io 服务器上失败。我尝试使用系统命令而不是 shell:
path_to_vbs_file = "www/Macro_Trigger.vbs"
system(shQuote(normalizePath(path_to_vbs_file)), intern = FALSE)
但这无济于事:(
【问题讨论】:
-
我怀疑 vbs 代码不会在 shinyapps.io 上运行,因为服务器运行的是 Linux 操作系统。
-
感谢您的回复。有没有其他方法可以实现我的目标?
-
我认为你需要使用
RExcel或类似的东西来实现R中的VBS代码功能。
标签: r shell shiny-server shiny shinydashboard