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 : Sélectionner tout - Visualiser dans une fenêtre à part
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

Nom : Excel-foreach-chiffre.png
Affichages : 150
Taille : 4,0 Ko


Second exemple avec la seconde boucle foreach avec des lettres. Problème, je n'ai qu'une colonne avec la dernière lettre.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

Nom : Excel-foreach-lettre.png
Affichages : 160
Taille : 2,2 Ko


Pourtant en affichant les variables avec chiffre ou lettre, tout semple bon.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?