【发布时间】:2011-08-15 13:47:03
【问题描述】:
我有一个 Excel 文档,我正在使用 perl OLE 自动化进行编辑,但遇到了问题。我需要在已经包含数据的两行之间输入一个空行,有点像将其附加到文件中,但不是在文件末尾。我也不想用 perl 重写整个文件。我该怎么做呢?
谢谢
【问题讨论】:
-
谢谢,它成功了,你不把这个作为答案吗?
-
因为我没有真正回答这个问题。我刚刚找到了一个页面。
我有一个 Excel 文档,我正在使用 perl OLE 自动化进行编辑,但遇到了问题。我需要在已经包含数据的两行之间输入一个空行,有点像将其附加到文件中,但不是在文件末尾。我也不想用 perl 重写整个文件。我该怎么做呢?
谢谢
【问题讨论】:
当我使用 Perl 和 Win32::OLE 使 Excel 自动化时,总是能帮助我的一件事是在 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
希望这会有所帮助!
【讨论】: