Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Spreadsheet::WriteExcel

8 réponses
Avatar
Olivier Mougin
Bonjour,
je ne sais pas si vous avez déjà utilisé les modules
spreadsheet::WriteExcel de perl. J'ecris des fichiers excel basés sur
des fichiers textes. Je ressors et mets en évidence (dans excel,
certaines donnees) que je filtre dans Excel.
Pour cela, je met un calcul conditionnel dans un certain nombre de cellules
J'ai un petit soucis lors de l ecriture de formule dans une cellule
Excel, Si quelqu'un a la solution, je suis preneur ...
Quand j'écris : $excelWheet -> write ('A1','=sum(A2:C2') Pas de
probleme ( ca marche avec un certain nombre d'autre formule mathématique
(sinus, cosinus ...)
par contre si j'ecris des formules conditionnelles comme celle ci :
$excelWheet -> write ('A1','=countif($C$3:$c$1000,"somthing")');

je recois un message d'erreur qui dit que perl ne peut pas parser cette
ligne ...
Vous avez une idee ?

Cordialement, olivier

8 réponses

Avatar
Paul Gaborit
À (at) Mon, 11 Dec 2006 08:58:09 +0100,
Olivier Mougin écrivait (wrote):
je recois un message d'erreur qui dit que perl ne peut pas parser
cette ligne ...
Vous avez une idee ?


Utilisez 'COUNTIF' à la place de 'countif'. C'est valable aussi pour
'SUM' (à la place de 'sum'). Êtes-vous sûr que votre première formule
avec 'sum' passait vraiment ?

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Olivier Mougin
À (at) Mon, 11 Dec 2006 08:58:09 +0100,
Olivier Mougin écrivait (wrote):
je recois un message d'erreur qui dit que perl ne peut pas parser
cette ligne ...
Vous avez une idee ?


Utilisez 'COUNTIF' à la place de 'countif'. C'est valable aussi pour
'SUM' (à la place de 'sum'). Êtes-vous sûr que votre première formule
avec 'sum' passait vraiment ?

Bonjour,

Merci, de votre réponse ... j'ai déjà essayé avec les majuscules.
Pour la formule avec =sum... oui elle passe ( la syntaxe dans mon
exemple ci dessus n est pas bonne mais elles est correcte dans mon bout
de programme :-))

le message exacte est celui-ci :
Couldn't parse formula: =COUNTIF($C$3:$C$2000;"OP3*") at C:/Documents
and Settings/Olivier/workspace/Perl_Projet/Program.pl line 279

Je vais regarder si il n'y a pas un autre module (perl) que je puisse
utilisé ...
Cordialement, olivier


Avatar
Paul Gaborit
À (at) Mon, 11 Dec 2006 12:03:36 +0100,
Olivier Mougin écrivait (wrote):
le message exacte est celui-ci :
Couldn't parse formula: =COUNTIF($C$3:$C$2000;"OP3*") at C:/Documents
and Settings/Olivier/workspace/Perl_Projet/Program.pl line 279


Il a raison : le ';' est incorrecte. Il faut une ',' !

Le conseil de la documentation est bon... Petit extrait :

If your formula doesn't work in Spreadsheet::WriteExcel try the
following:

1. Verify that the formula works in Excel (or Gnumeric or
OpenOffice.org).
2. Ensure that it isn't on the Caveats list shown above.
3. Ensure that cell references and formula names are in uppercase.
4. Ensure that you are using ':' as the range operator, A1:A4.
5. Ensure that you are using ',' as the union operator, SUM(1,2,3).
6. Ensure that the function is in the above table.

Pour le point 6., il faut se référer à la liste de la doc.

Je vais regarder si il n'y a pas un autre module (perl) que je puisse
utilisé ...


Pour écrire des feuilles Excel, il n'y a que celui-là.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Olivier Mougin
À (at) Mon, 11 Dec 2006 12:03:36 +0100,
Olivier Mougin écrivait (wrote):
le message exacte est celui-ci :
Couldn't parse formula: =COUNTIF($C$3:$C$2000;"OP3*") at C:/Documents
and Settings/Olivier/workspace/Perl_Projet/Program.pl line 279


Il a raison : le ';' est incorrecte. Il faut une ',' !


Damned ! Ca marche en plus ... (betement j avais recopié la formule
existante dans un de mes fichiers excel, il y avait bien un ";")



Le conseil de la documentation est bon... Petit extrait :

If your formula doesn't work in Spreadsheet::WriteExcel try the
following:

1. Verify that the formula works in Excel (or Gnumeric or
OpenOffice.org).
2. Ensure that it isn't on the Caveats list shown above.
3. Ensure that cell references and formula names are in uppercase.
4. Ensure that you are using ':' as the range operator, A1:A4.
5. Ensure that you are using ',' as the union operator, SUM(1,2,3).
6. Ensure that the function is in the above table.

Pour le point 6., il faut se référer à la liste de la doc.

Je vais regarder si il n'y a pas un autre module (perl) que je puisse
utilisé ...


Pour écrire des feuilles Excel, il n'y a que celui-là.



Oui, pour faire tout ce je veux faire, oui c est le plus complet ... Ou
alors faut passer par des templates, mais c est pas tres sioux pour les
formules ...

Merci du coup de pouce ...


Avatar
Said KADDOURI
À (at) Mon, 11 Dec 2006 12:03:36 +0100,
Olivier Mougin écrivait (wrote):
le message exacte est celui-ci :
Couldn't parse formula: =COUNTIF($C$3:$C$2000;"OP3*") at C:/Documents
and Settings/Olivier/workspace/Perl_Projet/Program.pl line 279


Il a raison : le ';' est incorrecte. Il faut une ',' !


Damned ! Ca marche en plus ... (betement j avais recopié la formule
existante dans un de mes fichiers excel, il y avait bien un ";")



Le conseil de la documentation est bon... Petit extrait :

If your formula doesn't work in Spreadsheet::WriteExcel try the
following:

1. Verify that the formula works in Excel (or Gnumeric or
OpenOffice.org).
2. Ensure that it isn't on the Caveats list shown above.
3. Ensure that cell references and formula names are in uppercase.
4. Ensure that you are using ':' as the range operator, A1:A4.
5. Ensure that you are using ',' as the union operator, SUM(1,2,3).
6. Ensure that the function is in the above table.

Pour le point 6., il faut se référer à la liste de la doc.

Je vais regarder si il n'y a pas un autre module (perl) que je puisse
utilisé ...


Pour écrire des feuilles Excel, il n'y a que celui-là.





Faux !! Il y a Win32::OLE si on utilise Perl sous Windows avec Excel
installé. ca permet de faire bcp plus de choses que
Spreadsheet:WriteExcel (Macros, graphs ...)


Oui, pour faire tout ce je veux faire, oui c est le plus complet ... Ou
alors faut passer par des templates, mais c est pas tres sioux pour les
formules ...

Merci du coup de pouce ...


Saïd



Avatar
DoMinix
...
Je vais regarder si il n'y a pas un autre module (perl) que je puisse
utilisé ...
Pour écrire des feuilles Excel, il n'y a que celui-là.





Faux !! Il y a Win32::OLE si on utilise Perl sous Windows avec Excel
installé. ca permet de faire bcp plus de choses que
Spreadsheet:WriteExcel (Macros, graphs ...)



c'est un peu intempestif comme intervention.
on ne brandit pas une "Faut !!" comme ça, surtout quand la reponse
est juste.
le bon sens voudrais une approche diplomatique avec des,
"si on est sous MS Windows il y a egalement la possibilité de ... "
Win32::OLE est un "system()" deguisé; on ne peut pas dire que ca fait
des feuilles excel"
merci de temperer.

joyeux Noel.

--
dominix




Avatar
Said KADDOURI
...
Je vais regarder si il n'y a pas un autre module (perl) que je puisse
utilisé ...
Pour écrire des feuilles Excel, il n'y a que celui-là.


Faux !! Il y a Win32::OLE si on utilise Perl sous Windows avec Excel


installé. ca permet de faire bcp plus de choses que
Spreadsheet:WriteExcel (Macros, graphs ...)



c'est un peu intempestif comme intervention.
on ne brandit pas une "Faut !!" comme ça, surtout quand la reponse
est juste.
le bon sens voudrais une approche diplomatique avec des,
"si on est sous MS Windows il y a egalement la possibilité de ... "
Win32::OLE est un "system()" deguisé; on ne peut pas dire que ca fait
des feuilles excel"
merci de temperer.

joyeux Noel.



Désolé ;-)

Joyeux Noel.

Said





Avatar
Paul Gaborit
J'écrivais :

Pour écrire des feuilles Excel, il n'y a que celui-là.




À (at) Sat, 23 Dec 2006 23:56:48 +0100,
Said KADDOURI écrivait (wrote):

Faux !! Il y a Win32::OLE si on utilise Perl sous Windows avec Excel
installé. ca permet de faire bcp plus de choses que
Spreadsheet:WriteExcel (Macros, graphs ...)


Dans ce cas, on peut aussi considérer le module OpenOffice::OODoc qui
a l'avantage de fonctionner sur toutes les plateformes.

Mais dans tous les cas, ces modules ont le gros défaut de reposer sur
des programmes externes soit pour fonctionner (Win32::OLE) soit pour
obtenir le fichier final (conversion via OOo).

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>