nemadepsn has asked for the wisdom of the Perl Monks concerning the following question:
I want to copy content from one excel file to another retaining the format too. Here by format I mean fill color, border, bold, italic, etc. I have written a code for this where I extract the value and format number from one excel file and simply write in the other excel sheet. I have referred the following link for that.
https://metacpan.org/pod/Spreadsheet::ParseExcel::SaveParser
The problem is that it is not retaining the format. I think the problem is that the format number is not universal which means that a format number means two different things in two different excel files. When I run this code I get the error
Use of uninitialized value in hash element at /pkg/qct/software/perl/5.18.0_test/lib/site_perl/5.18.0/Spreadsheet/ParseExcel.pm line 2383.
According to me, it means that the extracted format number doesn't mean anything to other file. Please let me know solution to this problem
Basically what my problem is that I have modified two xls file using Spreadsheet::ParseExcel::SaveParser and I want to merge those two xls files using Perl. Please suggest a way of merging two xls files using Perl in any other way such that formatting is retained. Please suggest non-Perl way too using some other coding language.
This question has been cross-posted on stackoverflow : https://stackoverflow.com/questions/56545694/unable-to-retain-the-format-in-copying-from-one-excel-file-to-another
#!/usr/bin/perl use strict; use warnings; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; # Open an existing file with SaveParser my $parser = Spreadsheet::ParseExcel::SaveParser->new(); my $template = $parser->Parse('template.xls'); my $parser1 = Spreadsheet::ParseExcel::SaveParser->new(); my $template1 = $parser1->Parse('test_perl.xls'); my $worksheet11 = $template->worksheet(0); $template1->AddWorksheet('New Data'); my $worksheet22 = $template1->worksheet(0); my $cellz; my $valua;my $format_number; for (my $i = 0; $i < 400; $i++) { for (my $j = 0; $j < 20; $j++) { $cellz = $worksheet11->get_cell( $i, $j ); if($cellz){ $valua = $cellz->unformatted(); $format_number = $cell +z->{FormatNo}; $worksheet22->AddCell($i, $j, $valua,$format_number); } } } my $workbook; $workbook = $template1->SaveAs('newfile1.xls');
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Unable to retain the format in copying from one excel file to another
by dsheroh (Monsignor) on Jun 11, 2019 at 15:22 UTC | |
by nemadepsn (Initiate) on Jun 11, 2019 at 19:12 UTC | |
Re: Unable to retain the format in copying from one excel file to another
by FreeBeerReekingMonk (Deacon) on Jun 14, 2019 at 00:06 UTC | |
Re: Unable to retain the format in copying from one excel file to another
by nemadepsn (Initiate) on Jul 18, 2019 at 13:39 UTC | |
by haukex (Archbishop) on Jul 18, 2019 at 17:33 UTC | |
by nemadepsn (Initiate) on Jul 19, 2019 at 06:02 UTC |