【问题标题】:Inserting Empty Row into a Excel Document将空行插入 Excel 文档
【发布时间】:2011-08-15 13:47:03
【问题描述】:

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

谢谢

【问题讨论】:

  • 谢谢,它成功了,你不把这个作为答案吗?
  • 因为我没有真正回答这个问题。我刚刚找到了一个页面。

标签: perl ole


【解决方案1】:

当我使用 Perl 和 Win32::OLE 使 Excel 自动化时,总是能帮助我的一件事是在 Excel 中创建一个宏来准确捕获我首先要完成的任务。从那里我可以查看 VB 代码,并且通常相对容易地将其转换为 Perl。

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

  1. 查看 -> 宏 -> 录制新宏
  2. 点击确定
  3. 右键单击工作表上的某处以插入新行
  4. 查看 -> 宏 -> 停止录制
  5. 查看->宏->查看宏,点击编辑

由此,我可以编写代码,例如:

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多