Menu

Perl: plot graphique sur Excel xls et pas xlsx [Fermé]

Jamie MacUloth - 16 févr. 2017 à 13:47 - Dernière réponse : JamieMacUloth 14 Messages postés jeudi 16 février 2017Date d'inscription 1 avril 2018 Dernière intervention
- 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

Afficher la suite 

2 réponses

[Dal] 4562 Messages postés mercredi 15 septembre 2004Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 17 févr. 2017 à 10:31
0
Utile
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
JamieMacUloth 14 Messages postés jeudi 16 février 2017Date d'inscription 1 avril 2018 Dernière intervention - 17 févr. 2017 à 11:59
0
Utile
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