linux - 如何通过复制 CSV 文件并从 Linux 远程运行 VBA 宏来创建 Excel 文件

标签 linux excel vba vbscript ssh

我正在 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 模板中存在的“复制粘贴”宏的 vb 脚本。

运行 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 自动执行此任务。

谢谢

舒巴姆

最佳答案

我会关注:

  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 文件系统是区分大小写的吗? (我做了并且浪费了一些时间)?

关于linux - 如何通过复制 CSV 文件并从 Linux 远程运行 VBA 宏来创建 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23627948/

相关文章:

vba - 根据不同的单元格值创建字母数字列表

excel - 将 Target.Address 存储在变量中

vba - 如何在 Excel VBA 中获取包括工作表名称但不包括工作簿名称的范围地址?

c++ - 使用 vim 检测 C++ 标准头文件的文件类型

linux - 对 expr 用法的困惑

linux - 将 VPS 上的 Linux 分区与 CentOS 和 Plesk 合并

excel - 按相邻列名选择单元格

excel - excel中的多个非连续行基于单元格值

excel - 根据标准对单元格求和

Linux 脚本 : if [ "$hostname" ! = "(none)"] 比较不起作用