http://www.perlmonks.org?node_id=821058


in reply to Formatting cells in Excel

Surprisingly, it's not totally clear what you want. Do you want "0200" as a string (which is what you say) or the number 200 formatted with a leading zero (which is what you seem to be trying to do)? The following code illustrates both:
use strict; use warnings; use diagnostics; use Win32::OLE; my $xl = Win32::OLE->new('Excel.Application'); $xl->{Visible} = 1; $xl->Workbooks->Add; my $rng = $xl->Workbooks(1)->Sheets(1)->Range("A1"); $rng->{Value} = 200; $rng->{NumberFormat} = "0000"; $rng = $xl->Workbooks(1)->Sheets(1)->Range("A2"); $rng->{Value} = "'0200";
A1 contains the number formatted with a leading zero (you may need some variant on this depending on what you are doing). A2 contains the text string. Note on the last line that the assignment starts with a double quote followed by a single quote. The text string doesn't (usually) need formatting.

Hope this helps and regards,

John Davies