my $t1 = tie my %t1, 'Spreadsheet';
 my %csv_atr = (
        'quote_char'  => '"',
        'escape_char' => '"',
        'sep_char'    => ';',
        'binary'      => 1 );
 $t1->LoadTemplate( './t1.csv', \%csv_atr);
 $t1{'A3'} = 'BZDYL';
 print $t1{'3,1'};
 print $t1->DumpAsCSV( \%csv_atr );
 print $t2->RowCount(), "\n";
 my $t2 = tie my %t2, 'Spreadsheet';
 $t1->CopySheetTo( $t2 );

 my @row = ( 1, 2, 3 );
 $t2->SetRow( 1, @row );
 @row = $t2->GetRow( 1 );
 my $new_spreadsheet_size = St2->PushRow( @row );
 @row = $t2->PopRow();
 @row = $t2->RemoveRow( 2 );



The module should be used for manipulating CSV data structures as if it would be a spreadsheet. Spreadsheet address in a form eg ('A12') or row and column number eg ('12,1') can be used for data access.


LoadTemplate ( $csv_file_path, \%csv_attributes )

Path to a CSV file and CSV parameters (see Text::CSV_XS) as input. Method can either suceed or everything dies...

DumpAsCSV( \%csv_attributes )

CSV file parameters as input. Method can return CSV string or everything dies...

CopySheetTo( $another_sheet )

Name of the 'SpreadSheet' tied pointer to hash as input. Method succeeds or everything dies ...

ShiftRow( )

No input. Similar to 'shift @ARRAY'. Returns shifted row.

PopRow( )

No input. Similar to 'pop @ARRAY'. Returns poped row.

PushRow( @new_cell_values )

Array as input. Similar to 'push @ARRAY'. Returns the new number of elements in the array.

GetRow( $row_number )

Row number as input. Returns array of cell values.

SetRow( $row_number, @@new_cell_values )

Row number and array as input. Returns nothing.

RemoveRow( $row_number )

Row number as input. Returns removed row as array.

RowCount( )

No input. Returns the number of elements in the spreadsheet.


Any suggestions for improvement are welcomed!

If a bug is detected or nonconforming behavior, please send an error report to <>.


Copyright 2006 Jerzy Wachowiak <>

This library is free software; you can redistribute it and/or modify it under the terms of the Apache 2.0 license attached to the module.



1 POD Error

The following errors were encountered while parsing the POD:

Around line 390:

=over is the last thing in the document?!