Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: spreadsheet writeexcel

by jmcnamara (Monsignor)
on Sep 26, 2011 at 14:55 UTC ( #927891=note: print w/ replies, xml ) Need Help??


in reply to spreadsheet writeexcel

If you mean "all the combinations" in one cell then you can't do it with Spreadsheet::WriteExcel since it only allows one format object per cell and features like super/subscript are mutually exclusive.

You can add multiple formats to text with Excel::Writer::XLSX which is (more or less) a drop in replacement for Spreadsheet::WriteExcel.

See the rich_strings.pl example in the distro.

--
John.


Comment on Re: spreadsheet writeexcel
Replies are listed 'Best First'.
Re^2: spreadsheet writeexcel
by virtuemart1 (Initiate) on Oct 12, 2011 at 09:45 UTC
    I am new to Perl and hope where is the right place to post.
    What I want is simply update Excel file. The following code is by jmcnamara.
    Source was this link:
    #!/usr/local/bin/perl -wT print "Content-type: text/html\n\n"; use strict; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; my $parser = Spreadsheet::ParseExcel->new(); my $workbookR = $parser->parse('file2.xls'); my $worksheetR = $workbookR->worksheet(0); my ( $row_min, $row_max ) = $worksheetR->row_range(); my ( $col_min, $col_max ) = $worksheetR->col_range(); print "row min:$row_min row_max:$row_max col_max:$col_max\n\n"; # Open the template with SaveParser my $parser2 = new Spreadsheet::ParseExcel::SaveParser; my $template = $parser2->Parse('file2.xls'); my $sheet = 0; my $row = 0; my $col = 0; # Get the format from the cell my $format = $template->{Worksheet}[$sheet] ->{Cells}[$row][$col] ->{FormatNo}; my $workbook; { # SaveAs generates a lot of harmless warnings about unset # Worksheet properties. You can ignore them if you wish. local $^W = 0; # Rewrite the file or save as a new file $workbook = $template->SaveAs('file2.xls'); } # Use Spreadsheet::WriteExcel methods my $worksheet = $workbook->sheets(0); if($row_max == -1){ for my $i (0..4){ $worksheet->write(0, $i, "A$i", $format); }} for my $i (0..$col_max){ $worksheet->write($row_max+1, $i, "B$i", $format); # not work } $workbookR->close(); $workbook->close();

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://927891]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (10)
As of 2015-07-28 11:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (254 votes), past polls