我有一个excel文档,我正在用perl OLE自动化编辑,我遇到了一个问题。我需要在已经包含数据的两行之间输入一个空行,有点像将其附加到文件而不是文件的末尾。我不想用perl重写整个文件。我该怎么做呢?
由于
答案 0 :(得分:0)
当我使用Perl& amp;进行Excel自动化时,有一件事总能帮到我。 Win32 :: OLE是在Excel中创建一个宏,捕获我想要首先完成的内容。从那里我可以查看VB代码,并且通常可以相对容易地将其转换为Perl。
例如,在打开的Excel 2010文件中:
从这里,我可以编写代码,例如:
#!c:/perl/bin/perl.exe
use strict;
use warnings;
use Win32::OLE;
my $excel = Win32::OLE->new( 'Excel.Application' )
or die "Could Not Start Excel.\n";
$excel->{ 'Visible' } = 1;
$excel->{ DisplayAlerts } = 0;
$excel->{ SheetsInNewWorkBook } = 1;
my $workbook = $excel->Workbooks->Add;
my $sheet = $workbook->Sheets( 1 );
$sheet->Range( 'A1' )->{ Value } = 'Data 1';
$sheet->Range( 'A2' )->{ Value } = 'Data 2';
$sheet->Range( '2:2' )->Select(); #Select Entire 2nd Row
$sheet->Range( '2:2' )->Insert( {
'Shift' => -4121, #xlDown
'CopyOrigin' => 0, #xlFormatFromLeftOrAbove
} );
__END__
此外,这里列出了一堆Excel枚举:http://www.datapigtechnologies.com/downloads/Excel_Enumerations.txt
希望这有帮助!