使用perl excel win32 ole检索excel单元格背景颜色

时间:2013-07-08 15:39:42

标签: perl excel win32ole

我需要检索excel单元格的背景颜色(根据工作表中的条件格式设置为红色/绿色)。尝试搜索论坛,但无法找到任何东西,虽然设置颜色在那里。 任何帮助将不胜感激......

1 个答案:

答案 0 :(得分:2)

您需要$Range->Interior()->ColorIndex();

以下是示例程序:

#!/usr/bin/perl

use Modern::Perl;
use Win32::OLE;
use FindBin qw($Bin);

my $ex;
eval { $ex = Win32::OLE->GetActiveObject('Excel.Application') };
die "Excel not installed" if $@;
unless ( defined $ex ) {
    $ex = Win32::OLE->new( 'Excel.Application', sub { $_[0]->Quit; } )
      or die "Oops, cannot start Excel";
}

my $book = $ex->Workbooks->Open("$Bin/test_background.xls");

my $sheet = $book->Worksheets(1);
my $Range = $sheet->Range("A1:A1");
say $Range->Interior()->ColorIndex();

$Range = $sheet->Range("B1:B1");
say $Range->Interior()->ColorIndex();

$Range = $sheet->Range("C1:C1");
say $Range->Interior()->ColorIndex();

此文件的输出enter image description here 是这样的:

3
6
3