Signaler

Perl: plot graphique sur Excel xls et pas xlsx

Posez votre question Jamie MacUloth - Dernière réponse le 17 févr. 2017 à 11:59 par JamieMacUloth
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 
Utile
+0
moins plus
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
Donnez votre avis
Utile
+0
moins plus
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
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !