如何从Excel调用Perl脚本?

时间:2009-03-06 08:58:41

标签: perl excel

我想使用VBA从Excel调用Perl脚本。我使用了shell命令。我还使用了以下代码:

Function Chk()
Dim RetVal
RetVal = Shell("C:\Perl\bin\Hello.pl", 1)
End Function

但是上面的函数没有运行该文件。有什么错误吗?

还有其他方法可以使用Excel调用Perl脚本或外部程序吗?

4 个答案:

答案 0 :(得分:5)

查看ActiveState的Perl扩展。它们有一个“ActivePerl”DLL,它将Perl解释器作为ActiveX组件运行,它应该允许与Excel无缝集成。

此外,它们的OLE扩展允许Perl访问完整的Excel OLE对象 模型,因此您可以非常精确地操作电子表格。

答案 1 :(得分:4)

你需要炮轰:

 c:\perl\bin\perl.exe Hello.pl 

让它运行。

答案 2 :(得分:4)

您还可以将此行添加为脚本中的第一行:

#!c:\perl\bin\perl.exe

答案 3 :(得分:1)

Excel的Shell()函数可能忽略了文件关联。你几乎肯定需要说些更像:

Function Chk()
  Dim RetVal
  Chk = Shell("C:\Perl\bin\perl.exe C:\Perl\bin\Hello.pl", 1)
End Function

获得你想要的效果。要注意的两个更改首先是perl.exe的显式调用,第二个是函数中写入的次要语法错误。

请注意,如果perl.exe的路径或脚本的路径(或者脚本的任何其他参数)中都有空格,那么您需要形成一个包含引用它们的双引号字符的字符串,像:

Function Chk()
  Dim RetVal
  Chk = Shell("C:\Perl\bin\perl.exe ""C:\Some path\with spaces\Hello.pl""", 1)
End Function

会做到这一点。