Perl: plot graphique sur Excel xls et pas xlsx

Fermé
Jamie MacUloth - 16 févr. 2017 à 13:47
JamieMacUloth Messages postés 43 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 6 juin 2022 - 17 févr. 2017 à 11:59
Bonjour,

Je sais générer un graphique à partir de Perl sur un Excel xlsx (j'utilise les infos de CPAN sur le sujet: http://search.cpan.org/dist/Spreadsheet-WriteExcel/lib/Spreadsheet/WriteExcel/Chart.pm):
my $chart = $workbook->add_chart etc.... et ça marche nickel !
Mais je ne vois pas d'équivalent pour faire de même sur un format xls.
Or je souhaite travailler sur un format xls et non xlsx.
J'ai déjà pas mal farfouillé sur le net mais je ne vois rien qui réponde à ce problème.
Je remercie d'avance celles ou ceux qui pourraient un peu m'aiguiller!

Jamie MacUloth

A voir également:

2 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
17 févr. 2017 à 10:31
Salut,

C'est bizarre, car d'après la doc CPAN le module Spreadsheet::WriteExcel est précisément sensé gérer l'ancien format .xls seulement, alors que le format .xlsx est géré par le module plus récent Excel::Writer::XLSX

Les deux modules sont compatibles, mais le premier n'est plus maintenu que pour les bogues de sécurité en raison de l'obsolescence du format.


Dal
0
JamieMacUloth Messages postés 43 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 6 juin 2022
17 févr. 2017 à 11:59
Coucou Dal merci ,

Oui en fait j'ai finalement vu que c'était possible mais j'ai un peu galéré donc je poste ici une solution de mon problème. En fait ce que je veux c'est généré un graphique en me basant sur 2 colonnes d'un xls dont la ligne max est stockée dans une variable $row_range:
En xlsx par exemple:
$chart->add_series(
name => 'le titre de mon graphique',
categories => ["sheet_toto", $row_start, $row_range, $my_col, $my_col], # je sélectionne par exemple une seule colonne genre abscisse
values => ["sheet_toto", $row_start, $row_range, $my_col2, $my_col2], # je sélectionne par exemple une seule colonne genre ordonnée,
);

==> La même syntaxe plantait en xls et du coup j'ai cru que c'était pas possible. Finalement en fouillant j'utilise cette syntaxe et ça marche:

En xls:

$chart->add_series(
name => "'le titre de mon graphique",
categories => "=sheet_toto!\$C$2:\$C:$row_range",
values => "=sheet_toto!\$G$2:\$G:$row_range",
);

==> cette syntaxe marche pour xls pour moi :)

JamieMacUloth
0