[php] Conversion xls en array()

WRInaute occasionnel
Salut, j'ai trouvé plein de classes php plus ou moins évoluées qui convertissent un fichier xls, en tableau html... mais je n'ai pas réussi à obtenir une variable de type array(), contenant tout le fichier xls.

Merci de me répondre si vous avez déja rencontré le problème, ou si vous avez déja rencontré sa solution.

¨Peace
 
WRInaute accro
Si tu regardes les commentaires de la doc, quelqu'un a posté exactement ce dont tu cherches :

Code:
function dumptoarray($sheet=0) {
        $arr = array();

        for($row=1;$row<=$this->rowcount($sheet);$row++) 
                for($col=1;$col<=$this->colcount($sheet);$col++) 
                        $arr[$row][$col] = $this->val($row,$col,$sheet);
                        
        return $arr;
}
 
WRInaute occasionnel
elle ne fonctionne pas. Si je me retourne vers vous et que je vous dis que j'ai lu la doc et que je n'y arrive pas, essayez de ne pas copier-coller la doc ^^ peace
 
WRInaute accro
Comment utilises-tu cette méthode ? Parce que vu les méthodes qu'elle utilise (qui sont fournies par la classe), et vu la manière dont elle procède, je vois mal pourquoi elle ne fonctionnerait pas.

Tu as des erreurs qui s'affichent ?
 
WRInaute occasionnel
j'ai essayé plusieurs méthodes mais je t'avoue que personne n'a donné la méthode qui permet de sortir un array(); tu sais comment utiliser la fonction de cette personne? merci
 
WRInaute accro
Il faut l'ajouter à la classe en question, vu qu'il s'agit d'une méthode pour cette classe, vu comment elle est écrite.

Et ensuite, sur un objet de cette classe, tu appliques la méthode :

Code:
$data = new Spreadsheet_Excel_Reader("test.xls");
$tab_result = $data -> dumptoarray();

//et pour regarder comment c'est stocké dans le tableau :
echo "<pre>";
print_r($tab_result);
echo "</pre>";
 
WRInaute occasionnel
cela me renvoie bien un tableau, mais un tableau énorme, comme je l'avais déjà eu , avec des milliers d'information qui ne m'intéressent pas, je cherche juste les valeurs ... mais c'est une bonne piste, je cherche !!
 
WRInaute accro
En théorie, ca doit te renvoyer un tableau multidimension php, avec en première dimension la ligne et en seconde dimension la colonne, et à chaque intersection la valeur correspondante dans le tableau.
 
WRInaute occasionnel
re, en fait il renvoie bien le tableau, mes 1000 valeurs, mais au moins 20000 autres valeurs en tout genre... je vais pas le faire calculer la totalité si il me faut seulement les valeurs; je cherche encore une solution, peut être un autre parser sinon ?!
 
WRInaute accro
Etant donné que tu n'expliques pas ce que tu veux récupérer exactement dans ton fichier Excel, c'est difficile de t'aider car on ne comprend pas pourquoi le fait que la classe Excel te renvoie la totalité des données ne correspond pas à ton besoin.

Le cas échéant, j'imagine qu'en faisant évolution la méthode dumptoarray(), il y a moyen de répondre à ton besoin.
 
WRInaute occasionnel
alors , en réalité mon tableau contiens,beaucoup de valeurs, elles sont très bien restituées par la fonction, cependant il renvoie aussi les infos de style, etc etc... mon tableau est un fichier xls de +- 17mo, qui change constament, alors j'aimerai omettre les imformations de style, de taille, et tout ce qui n'est pas une valeur. car il me renvoie un array GIGANTESQUE : cf : MP pour l'adresse.
 
WRInaute occasionnel
Bonjour.

Tu as peut-être essayé, mais parfois on passe à coté ; tout en haut de la doc, il y a un passage de paramètre qui me semble s'appliquer à ton problème de nettoyage de la mise en forme.

Si ça fonctionne, tu n'est pas le seul intéressé.

http://code.google.com/p/php-excel-reader/wiki/Documentation

Creating The Reader Object¶

$data = new Spreadsheet_Excel_Reader("test.xls");

Or conserve memory for large worksheets by not storing the extended information about cells like fonts, colors, etc.

$data = new Spreadsheet_Excel_Reader("test.xls",false);

Bonne journée, Éric.
 
Discussions similaires
Haut