2 pièce(s) jointe(s)
Spreadsheet::WriteExcel Question bouche foreach lettre
Bonjour,
je regarde un tuto pour créer un fichier excel avec le modul Spreadsheet::WriteExcel
http://l.boivin.free.fr/perl/fpw08.pdf
le premier exemple fonctionne bien avec des boucles foreach avec des chiffees, ca fonctionne.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| use warnings;
use strict;
use feature 'say';
use Spreadsheet::WriteExcel;
my $wb = Spreadsheet::WriteExcel->new("foo.xls");
my $ws = $wb->add_worksheet('Ma feuille');
foreach my $r (0..3)
{
foreach my $c (0..3)
{
$ws->write($r, $c, "cellule $r $c");
}
}
$wb->close(); |
Résultat
Pièce jointe 199547
Second exemple avec la seconde boucle foreach avec des lettres. Problème, je n'ai qu'une colonne avec la dernière lettre.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| use warnings;
use strict;
use feature 'say';
use Spreadsheet::WriteExcel;
my $wb = Spreadsheet::WriteExcel->new("foo.xls");
my $ws = $wb->add_worksheet('sheet1');
foreach my $r (0..3)
{
foreach my $c ('A'..'D')
{
$ws->write($r, $c, "Cell $r$c");
}
}
$wb->close(); |
Résultat
Pièce jointe 199546
Pourtant en affichant les variables avec chiffre ou lettre, tout semple bon.
Code:
1 2 3 4 5 6 7
| foreach my $r (0..3)
{
foreach my $c (0..3)
{
say "$r $c";
}
} |
Résultat
0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3
Code:
1 2 3 4 5 6 7 8 9
|
foreach my $r (0..3)
{
foreach my $c ('A'..'D')
{
$ws->write($r, $c, "Cell $r$c");
}
}
$wb->close(); |
Résultat
0 A
0 B
0 C
0 D
1 A
1 B
1 C
1 D
2 A
2 B
2 C
2 D
3 A
3 B
3 C
3 D
Je ne comprend pas avec les lettres pourquoi avec les lettres, les colonnes ne sont pas pris en compte.
Une idée?