我正在尝试使用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
答案 0 :(得分:0)
在录制宏时尝试在Excel中执行此操作。大多数情况下,方法和值都可用,而无需通过COM接口进行更改。录制的宏至少为您提供了指向方向的指针,通常它会为您提供您需要使用的确切方法/变量。
答案 1 :(得分:0)
您可以查看msdn,他们有答案:
http://msdn.microsoft.com/en-us/library/ff846982(v=office.14).aspx
答案 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;