Windows 如何将此代码从Visual Basic转换为Perl?
我正在尝试将Excel电子表格导出到SharePoint。我记录了VisualBasic代码,现在我想把它翻译成Perl。我试着这样做,但没有成功 我没有收到任何错误,但我也没有在Sharepoint中看到该列表。当我在Excel中使用宏时,它工作正常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;
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的方法。我更新了这个问题。也许你知道如何解决这个错误?