-
[excel][perl]tri en OLE
bonjour a tous
je suis en train de faire un programme en OLE pour obtenir un fichier excel et trier le tableau en fonction de la colonne A. J'ai beau essayé dans tous les sens, ca ne marche pas -_-
ex :
excel avant=>
salut 1
bye 25
chaud 7
excel après=>
bye 25
chaud 7
salut 1
un petit coup de patte sur la commande a faire pour trier un tableau sera la bienvenue sinon je serai forcé d'y aller avec un tableau et des "sort" qui vont alourdir mon programme a fond
merci d'avance
-
Qu'as tu essayé ? A priori OLE est en réalité le même pour tous les langages qui permettent de l'utiliser, donc tu pourrais également demander sur le forum Développement Windows pour un script VB, et adapter à l'interface OLE en Perl.
Quelques lien qui pourraient t'aider :
http://techsupt.winbatch.com/ts/T000001033005F46.html
http://www.perlmonks.org/?node_id=153486
Globalement la méthode semble être de générer une macro et de regarder le code généré pour avoir une idée de comment le faire, puis d'adapter au langage cible.
--
Jedaï
-
alors mon code actuel est :
my $range = $sheet2->Range("A1");
$sheet2->Range("A:C");
$Excel->Selection->Sort({Key1=>$range, Order1=>xlAscending, Header=>xlGuess, OrderCustom=>1, MatchCase=>0, Orientation=>xlTopToBottom});
l'erreur renvoyée :
OLE exception from "Microsoft Excel"
Référence de tri non valide. Vérifiez qu'elle se trouve bien parmi les données a trier et que la zone Trier par n'est pas identique ou vide
Win32::OLE(0.1702) error 0x800a03ec
in METHOD.PROPERTYGET "Sort" at truc.pl line 85