将空行插入Excel文档

时间:2011-08-15 13:47:03

标签: perl ole

我有一个excel文档,我正在用perl OLE自动化编辑,我遇到了一个问题。我需要在已经包含数据的两行之间输入一个空行,有点像将其附加到文件而不是文件的末尾。我不想用perl重写整个文件。我该怎么做呢?

由于

1 个答案:

答案 0 :(得分:0)

当我使用Perl& amp;进行Excel自动化时,有一件事总能帮到我。 Win32 :: OLE是在Excel中创建一个宏,捕获我想要首先完成的内容。从那里我可以查看VB代码,并且通常可以相对容易地将其转换为Perl。

例如,在打开的Excel 2010文件中:

  1. 查看 - >宏 - >记录新宏
  2. 点击确定
  3. 右键单击工作表上的某个位置以插入新行
  4. 查看 - >宏 - >停止录制
  5. 查看 - >宏 - >查看宏,单击编辑
  6. 从这里,我可以编写代码,例如:

    #!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

    希望这有帮助!