I'm writing data to excel cells and would like to have the format be something other than "General". I'd like to write the string "0200", for example, and have is displayed as "0200". Any help would be appreciated. I'm not too good at deciphering the OLE Viewer type output. Here's what I've tried:
use strict;
use Win32::OLE;
use Win32::OLE::Enum;
use Cwd;
my $home = getcwd;
my $xls = "$home/t.xls";
my $excel = Win32::OLE -> GetActiveObject('Excel.Application') ||
Win32::OLE -> new('Excel.Application', 'Quit');
my $wb = $excel->Workbooks->Add();
my $ws = $wb->Worksheets(1);
my $value = "0200";
$ws->{Name} = "test";
$ws->Cells(1, "A")->{Format} = 'Text';
$ws->Cells(1, "A")->{Value} = $value;
$ws->Cells(2, "A")->{Format}->{Number} = 'Text';
$ws->Cells(2, "A")->{Value} = $value;
$ws->Cells(3, "A")->{NumberFormat} = "Text";
$ws->Cells(3, "A")->{Value} = $value;
$ws->Cells(4, "A")->{TextFormat} = "Text";
$ws->Cells(4, "A")->{Value} = $value;
$wb->SaveAs($xls);
$wb->Close;
$excel->Quit();
But, what I get is "200" in rows 1, 2, 4, and "T1900xt" in row 3 (with "7/18/1900" displayed in the formula box).
Thanks in advance,
David