metaperl has asked for the wisdom of the Perl Monks concerning the following question:
I'm attempting to modify an Excel spreadhsheet which
spreadsheet has a merged cell at D8.
I wrote a small program which reads the format of D8 and writes some data back to D8 in a new sheet with that formatting:
#!/usr/bin/perl -w use strict; use Smart::Comments; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; # Open the template with SaveParser my $parser = new Spreadsheet::ParseExcel::SaveParser; my $template = $parser->Parse('sat.xls'); warn "template:$template:"; my $sheet = 0; 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('new.xls'); } # Use Spreadsheet::WriteExcel methods my $worksheet = $workbook->sheets(0); my $row = 7; my $col = 3; # Get the format from the cell my $format = $template->{Worksheet}[$sheet]->{Cells}[$row][$col]->{For +matNo}; $worksheet->write( $row, $col => 'some_originating_entity', $format );
However, the new sheet has all the merged cells unmerged.
Is there a way to preserve merged cells when updating/modifying cells in the template spreadsheet?
Both the program and the initial spreadsheet are here
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Preserving merged cells when using Spreadsheet::WriteExcel and ParseExcel
by metaperl (Curate) on Sep 30, 2011 at 18:09 UTC |
Back to
Seekers of Perl Wisdom