如何使用perl语言中的Win32 :: OLE模块格式化XLSX文件中单元格中的文本

时间:2013-11-27 11:07:53

标签: perl

我正在尝试使用win32 :: OLE模块编写现有的XLSX文件。我希望逐个单元格插入值。我还想格式化单元格(字体,颜色,对齐等)。我的要求是只使用win32 :: OLE模块,请你建议我使用哪种方法,提前谢谢....

**formatstring.pl**

use strict;
use warnings;
use win32::OLE;
our $Excel1 = Win32::OLE->new('Excel.Application');
our $Workbook1= $Excel1->Workbooks->Open($outputfilepath);
my $sheet1 = $Workbook1->Worksheets(1);
our $RowCount=$sheet1->Usedrange->Rows->{Count};
 my $g_DS_TestCaseID="sd123";  
print "RowCount of outputfile: $RowCount";
$sheet1->Cells($RowCount+1,1)->{value}=$g_DS_TestCaseID;#here i want to format the text as bold with colorindex as green

3 个答案:

答案 0 :(得分:0)

很久很久以前,我做过这样的事情。这不是一个真正的答案,而是一个指针:

在录制宏时尝试在Excel中执行此操作。大多数情况下,方法和值都可用,而无需通过COM接口进行更改。录制的宏至少为您提供了指向方向的指针,通常它会为您提供您需要使用的确切方法/变量。

答案 1 :(得分:0)

答案 2 :(得分:0)

很简单:

use FindBin qw($Bin);
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
our $Excel = Win32::OLE->new('Excel.Application');

$Excel->{'Visible'} = 1;
$Excel->{DisplayAlerts} = 0;
our $Workbook = $Excel->Workbooks->Open("$Bin/Test.xls");
my $Sheet = $Workbook->Worksheets(1);


$Sheet->Range("A2")->{Font}->{Bold} = 1;
$Sheet->Range("A2")->{Interior}->{ColorIndex} = 36;