Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何将此代码从Visual Basic转换为Perl?_Windows_Perl_Excel_Sharepoint 2010_Vba - Fatal编程技术网

Windows 如何将此代码从Visual Basic转换为Perl?

Windows 如何将此代码从Visual Basic转换为Perl?,windows,perl,excel,sharepoint-2010,vba,Windows,Perl,Excel,Sharepoint 2010,Vba,我正在尝试将Excel电子表格导出到SharePoint。我记录了VisualBasic代码,现在我想把它翻译成Perl。我试着这样做,但没有成功 我没有收到任何错误,但我也没有在Sharepoint中看到该列表。当我在Excel中使用宏时,它工作正常 use Win32::OLE::Const 'Microsoft Excel'; my $excel = Win32::OLE->new('Excel.Application'); $excel->{'Visible'} = 1;

我正在尝试将Excel电子表格导出到SharePoint。我记录了VisualBasic代码,现在我想把它翻译成Perl。我试着这样做,但没有成功

我没有收到任何错误,但我也没有在Sharepoint中看到该列表。当我在Excel中使用宏时,它工作正常

use Win32::OLE::Const 'Microsoft Excel';

my $excel = Win32::OLE->new('Excel.Application');
$excel->{'Visible'} = 1;
$excel->{DisplayAlerts} = 1;

my $book = $excel->Workbooks->Open("C:\\Book1.xlsx")
    || die("Unable to open document ", Win32::OLE->LastError());

my $list = $book->ActiveSheet->ListObjects("Table1")->Publish Array("https:\/\/sponsor\/sites\/dev_test_site", "myname"), False;  
原始visualbasic代码

Sub Macro1()

  ActiveSheet.ListObjects("Table1").Publish Array( _
    "https://sponsor/sites/dev_test_site", "myname"), False
  Range("C2").Select
End Sub
最终我想出了这个代码

my $excel = Win32::OLE->new('Excel.Application');
$excel->{'Visible'} = 1;
$excel->{DisplayAlerts} = 1;

my $book = $excel->Workbooks->Open("C:\\Book1.xlsm")
    || die("Unable to open document ", Win32::OLE->LastError());

my @array=("https:\/\/sponsor\/sites\/dev_test_site", "aaaa");

my $list= $book->ActiveSheet->ListObjects("hhhh")->Publish(@array, 0);
这张图显示了结果


你可以看看这个:这已经有了一些答案


您可能需要遵循此脚本。%pp-o hello.pl或类似的东西。

你可以看看这个:这个已经有了一些答案

您可能需要遵循此脚本。%pp-o hello.pl或类似的东西。

您应该使用strict并使用警告。然后,它将继续告诉您一些错误消息

我可以从您发布的Perl代码中看出,无需运行它:

my $list= $book->ActiveSheet->ListObjects("Table1")->Publish Array("https:\/\/sponsor\/sites\/dev_test_site", "myname"), False;
请注意,发布和数组之间有一个空格。那一定是个问题。函数cal后跟or以外的其他内容的唯一方法;或者,如果它有原型的话。但面向对象Perl中的方法调用不能有原型。所以这绝对是错误的

然后是数组。。。。没有名为Array的内置函数,我认为Win32::OLE::Const不会导出该函数,尽管我没有查看。即使它这样做了,您也告诉它只导出“Microsoft Excel”。虚假也是如此

我建议您阅读并添加使用严格和使用警告。还有一些关于如何在上使用Win32模块的资源。

您应该使用strict和warnings。然后,它将继续告诉您一些错误消息

我可以从您发布的Perl代码中看出,无需运行它:

my $list= $book->ActiveSheet->ListObjects("Table1")->Publish Array("https:\/\/sponsor\/sites\/dev_test_site", "myname"), False;
请注意,发布和数组之间有一个空格。那一定是个问题。函数cal后跟or以外的其他内容的唯一方法;或者,如果它有原型的话。但面向对象Perl中的方法调用不能有原型。所以这绝对是错误的

然后是数组。。。。没有名为Array的内置函数,我认为Win32::OLE::Const不会导出该函数,尽管我没有查看。即使它这样做了,您也告诉它只导出“Microsoft Excel”。虚假也是如此


我建议您阅读并添加使用严格和使用警告。还有一些关于如何在上使用Win32模块的资源。

它不起作用意味着什么-您收到了什么错误消息?您需要使用Perl来实现这一点有什么具体原因吗?这是Powershell非常适合做的工作,因为它与.Net平台上的Sharepoint和Excel交互操作有着天然的联系。我没有遇到任何错误。但我在sharepoint中也没有看到该列表。当我在excel中使用宏时,它工作正常。请不要在问题中使用文本图像。尽可能地复制和粘贴信息。它不起作用意味着什么-您收到了什么错误消息?您需要使用Perl来实现这一点有什么具体原因吗?这是Powershell非常适合做的工作,因为它与.Net平台上的Sharepoint和Excel交互操作有着天然的联系。我没有遇到任何错误。但我在sharepoint中也没有看到该列表。当我在excel中使用宏时,它工作正常。请不要在问题中使用文本图像。尽可能地复制和粘贴信息。我有一个VBA代码可以工作,我想将其转换为Perl脚本我有一个VBA代码可以工作,我想将其转换为Perl脚本您能帮助我使用发布数组功能吗?我找不到如何在Perl中使用它。恐怕我不熟悉SharePoint。我只能告诉你你的代码在语法上有什么问题。对不起,我只需要了解如何用Perl编写发布数组函数。它与SharePoint无关。我在任何地方都找不到ListObjects的方法。我更新了这个问题。也许你知道如何解决这个错误?你能帮我使用发布数组功能吗?我找不到如何在Perl中使用它。恐怕我不熟悉SharePoint。我只能告诉你你的代码在语法上有什么问题。对不起,我只需要了解如何用Perl编写发布数组函数。它与SharePoint无关。我在任何地方都找不到ListObjects的方法。我更新了这个问题。也许你知道如何解决这个错误?