Thread Spaltenbreite mit Spreadsheet::ParseExcel::SaveParser (2 answers)
Opened by roli at 2011-03-07 17:05

roli
 2011-03-07 18:09
#146289 #146289
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi Taulmarill,

2011-03-07T16:51:16 Taulmarill
Das Spreadsheet::WriteExcel::Worksheet Objekt, an dessen Funktion du ran willst, wird erst beim Speichern angelegt, da kommst du also nicht ran.


Das war's, das ist der Unterschied zwischen den Beispielen die ich hatte bei denen es geht, und meinem Code. So geht's:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use strict;
use warnings;
use Spreadsheet::WriteExcel;
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::SaveParser;

my $xls_file                  = "./kaese.xls";
my $max_zeile_zusammenfassung = 0;
my $workbook;
my $ws_zusammenfassung;

#Wenn die Datei noch nicht existiert, wird sie hier angelegt
if ( !-f $xls_file ) {
    $workbook           = Spreadsheet::WriteExcel->new("./template.xls");
    $ws_zusammenfassung = $workbook->add_worksheet('Zusammenfassung');
    $ws_zusammenfassung->set_column( 'A:A', 45 );
    $ws_zusammenfassung->set_column( 'B:B', 90 );
    $workbook->close() or die "Error closing file: $!";
}
undef $workbook;
undef $ws_zusammenfassung;

my $parser   = Spreadsheet::ParseExcel::SaveParser->new();
my $template = $parser->Parse('./template.xls');

$workbook = $template->SaveAs($xls_file);

# Get the first worksheet (it already exists and doesn't need to be created).
my $worksheet = $workbook->sheets(0);

$worksheet->set_column( 'A:A', 10 );
$worksheet->set_column( 'B:B', 20 );
$worksheet->write( 'B1', 'This column is wider' );


Danke
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2

View full thread Spaltenbreite mit Spreadsheet::ParseExcel::SaveParser