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();
|