OpenOffice-OODoc
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
examples/text2table view on Meta::CPAN
#!/usr/bin/perl
#-----------------------------------------------------------------------------
# $Id : text2table 0.2 2008-05-13 JMG$
#-----------------------------------------------------------------------------
=head1 NAME
text2table - flat text conversion to OpenDocument spreadsheet
=head1 SYNOPSIS
text2table sourcefile.csv mycalc.ods 32 20
=head1 DESCRIPTION
Creates an ODF spreadsheet file and populate its first sheet
from a delimited text file. Each line of the source file produces
a row in the target table. In the line, the field separator is ";".
The target file is created. Any existing file with the same name is
replaced.
The two last arguments are the length (lines) and the width (columns)
of the target table.
The input values are processed as text values.
=cut
use OpenOffice::OODoc 2.103;
my ($input_file, $output_file, $lines, $columns) = @ARGV;
die "Usage : txt2table <input file> <output OOo file> <lines> <columns>\n"
unless ($input_file && $output_file && $lines && $columns);
# create the OOo spreadsheet
my $doc = odfDocument(file => $output_file, create => 'spreadsheet');
# select & size the 1st (and only) sheet in the document
my $sheet = $doc->expandTable(0, $lines, $columns);
# rename it as the input file (why not ?)
$doc->renameTable($sheet, $input_file);
# populate the table
open INPUT, "<", $input_file or die "Input file $input_file unavailable\n";
my $line = undef;
my @rows = $doc->getTableRows($sheet);
for (my $i = 0 ; $i < $lines && ($line = <INPUT>) ; $i++)
{
my $row = $rows[$i];
my @cellvalues = split ';', $line;
my @cells = $doc->getRowCells($row);
for (my $j = 0 ; $j < $columns && @cellvalues ; $j++)
{
$doc->cellValue($cells[$j], shift @cellvalues);
}
}
# save the result
$doc->save;
exit;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.396 second using v1.00-cache-2.02-grep-82fe00e-cpan-665e4fe6bdf )