Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

spreadsheet writeexcel

by Biju (Initiate)
on Sep 26, 2011 at 13:20 UTC ( #927870=perlquestion: print w/replies, xml ) Need Help??
Biju has asked for the wisdom of the Perl Monks concerning the following question:

How to insert a text which contains all the combinations (normal text, subscript, superscript, italic, bold) in a cell of a MSEXCEL using spreadsheet::writeexcel

Replies are listed 'Best First'.
Re: spreadsheet writeexcel
by marto (Bishop) on Sep 26, 2011 at 13:26 UTC
Re: spreadsheet writeexcel
by jmcnamara (Monsignor) on Sep 26, 2011 at 14:55 UTC

    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 example in the distro.


      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?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://927870]
Approved by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2017-10-17 21:22 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (238 votes). Check out past polls.