0
我必须编写代码,以密码保护表,并且密码保护细胞也。至此我已经尝试下面的代码如何密码保护格或单元格区域用perl
#!c:\perl\bin\
use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Variant;
use Win32::OLE::NLS qw(:LOCALE :DATE);
$Win32::OLE::Warn = 3; # Die on Errors.
use Spreadsheet::WriteExcel;
my $excelfile = 'protect.xls';
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');
$Excel->{DisplayAlerts}=0;
my $Book = $Excel->Workbooks->Add();
$Book->SaveAs($excelfile);
my $Sheet = $Book->Worksheets("Sheet1");
$Sheet->{Name} = "DidItInPerl";
my $vtfalse = Variant(VT_BOOL, 0);
my $vttrue = Variant(VT_BOOL, 1);
my $Range = $Sheet->Range("A1:c2");
$Sheet->Protection->AllowEditRanges->Add({Title=>"MyRange", Range=>$Range},'1222');
$Sheet->Protect(
{DrawingObjects=>$vttrue,
Contents=>$vttrue,
Scenarios=>$vttrue,});
但这种细胞Excel 2007中不管用 。
嗨gangabass !!,给出解决方案仍然没有工作 – arun 2013-04-09 15:48:59
您发表对我的作品,除了这一行相同的代码(我也改变了它,因为我有本地化的版本的Excel和表名不是Sheet1等俄文:'我的$ Sheet = $ Book-> Worksheets(1);' – gangabass 2013-04-10 06:43:23