【问题标题】:How to create excel file by copying CSV files and running VBA macros remotely from Linux如何通过复制 CSV 文件并从 Linux 远程运行 VBA 宏来创建 excel 文件
【发布时间】:2014-06-30 22:22:23
【问题描述】:

我正在 Linux 上运行一些生成某些 CSV 的任务。生成后,我需要将它们复制到 Excel 文件的不同工作表中,然后运行一些 VBA 宏来生成报告。由于这必须每天进行多次(没有预先定义/固定的时间表),我想自动化它。

这是我尝试过的: 我编写了一个 VBScript,它获取 CSV 文件和其他所需的输入文件,打开一个 excel 文件,将 CSV 复制到 excel 中,运行一些 VBA 宏,然后保存并关闭结果。当在 Windows 服务器上本地触发时,此 VBScript 工作正常。

我已经上传了涉及here 的文件的更简单版本,这在一定程度上阐明了我的要求(请注意,与此处的宏相比,我需要运行的宏要复杂得多(约 500 行))。 存档中有四个文件:

  1. Template.xlsm:要粘贴数据的报表的 Excel 模板
  2. Input_Sheet2.csv : 将要粘贴到模板中的输入数据到工作表 2
  3. Input_Sheet3.csv :要粘贴到模板中的输入数据到工作表 3
  4. Run.vbs:触发 Excel 模板中存在的“复制粘贴”宏的 vbscript。

运行VBScript的命令是:'cscript //Nologo Run.vbs /NoCancel'

现在,为了自动化整个任务,我想通过 ssh 从 Linux 远程触发这个 VBScript。我在 windows 机器上安装了 cygwin ssh 守护程序,并促进了来自 Linux 机器的 ssh 连接。这个来自 Linux 的 cygwin ssh 连接允许运行多个 windows 命令,但无法运行 VBScript 并且不会产生任何 excel 输出。

我不知道哪个组件有限制。 cygwin ssh 是否不利于执行 VBScript? VBScript 是否不利于远程创建文件? Linux 上的 ssh 客户端是否不允许以 GUI 格式打开 excel?或者还有另一种方法可以从 Linux 自动执行此任务。

谢谢,

舒巴姆

【问题讨论】:

  • 没有错误信息。它只是无限期地挂起,直到你强制关闭它。

标签: linux excel vba vbscript ssh


【解决方案1】:

我会专注于:

  1. 您是否测试过从 Cygwin 终端运行脚本? (我确实尝试了一个简单的脚本,它成功打开了 Execl (.Visible = True),所以我相信您对 cygwin 不允许打开 Excel GUI 的担心是不必要的)。
  2. sshd 用户帐户的路径和 cwd 是否允许短调用“cscript Run.vbs”或应该使用长版本“/cygdrive/c/WINDOWS/system32/cscript.exe /home/user/Run.vbs” ?
  3. sshd 用户是否有权访问所有相关文件和文件夹?
  4. 您没有忘记 unix 文件系统是区分大小写的吗? (我做了并浪费了一些时间)?

【讨论】:

  • 感谢 Ekkehard,1. 脚本在 windows 上本地从 cygwin 命令提示符触发时运行良好,但在通过 ssh 连接到 windows 上的 cygwin 守护程序从 Linux 远程触发时不运行。 2.它允许远程短调用。我尝试运行一个简单的 VBScript,其中只有 'Wscript.echo "My Very First Script"',它的回声很好。 3.我已经让每个人都可以完全控制各自的文件和文件夹。 4. 不是这样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 2016-06-14
相关资源
最近更新 更多