ECRITURE DE FICHIERS CSV (EXCEL) [ OBJECT ]

orsam Messages postés 28 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 22 octobre 2007 - 17 janv. 2005 à 23:05
cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 - 30 oct. 2007 à 15:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26784-ecriture-de-fichiers-csv-excel-object

cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 3
30 oct. 2007 à 15:30
J'ai mis en ligne le source, et l'explication d'usage de Julian75 (en virant les "$mesdonnees" pour utiliser mon array, et l'erreur devient :

Missing argument 1 for MakeCsv::MakeCsv(), called in /../fichier.php on line 63 and defined in /../fonction/export.class.php on line 41

Fatal error: Can't open monfichier.csv in /../fonction/export.class.php on line 51

D'où 2 questions liées ?
- l'argument manquant c'est le fichier ?
- pourquoi le fichier ne s'ouvre pas? Question de droit + répertoire ? Il faut le créer au préalable ? (beurk j'aime pas la gestion de 'file')
julian75 Messages postés 8 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 11 décembre 2017
12 sept. 2007 à 13:52
require ("include/export.class.php");

$mesdonnees[1] = array("DIDEROT", "Denis", "philospohe", "1713", "1784");
$mesdonnees[2] = array("ROUSSEAU", "Jean-Jacques", "philospohe", "1712", "1778");
$mesdonnees[3] = array("DE BOUGAINVILLE", "Louis-Antoine", "ecrivain", "1729", "1811");
$mesdonnees[4] = array("CAZOTTE", "Jacques", "ecrivain", "1720", "1792");
$mesdonnees[5] = array("CONSTANT", "Benjamin", "ecrivain", "1767", "1830");
$mesdonnees[6] = array("CREBILLON", "Claude", "ecrivain", "1707", "1777");
$mesdonnees[7] = array("DAMILAVILLE", "Étienne Noël", "ecrivain", "1723", "1768");
$mesdonnees[8] = array("DEFOE", "Daniel", "ecrivain", "", "");
$mesdonnees[9] = array("DUMARSAIS", "César", "ecrivain", "1676", "1756");
$mesdonnees[10] = array("DE MARIVAUX", "Pierre", "ecrivain", "1688", "1763");
$mesdonnees[11] = array("DE SADE", "Donatien", "ecrivain", "1740", "1814");

$export = new MakeCsv;
$export->MakeCsv("monfichier.csv");

foreach ($mesdonnees as $key => $line) {
$export->addLine($line, $key);
}
$export->createCsv();
cs_cedric15 Messages postés 1 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 30 juillet 2007
30 juil. 2007 à 23:49
Comment utilise t-on cette class ?
MusSDev Messages postés 2 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 8 juin 2007
8 juin 2007 à 14:26
Je cherche la possibilité de faire cette export en unicode, mais toutes mes tentatives sont restées sans resultat
Si quelqu'un a une solution, je suis preneur
dadoudamiendutka Messages postés 3 Date d'inscription dimanche 3 juillet 2005 Statut Membre Dernière intervention 8 décembre 2007
6 juin 2007 à 17:21
Aucun soucis pour le header,
Aucun soucis pour le header,
Aucun soucis pour le header,
;)
psyjc Messages postés 182 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 18 avril 2008
6 juin 2007 à 14:56
Pas de soucis pour moi tant que tu laisse le header :)
Bonne initiative.
dadoudamiendutka Messages postés 3 Date d'inscription dimanche 3 juillet 2005 Statut Membre Dernière intervention 8 décembre 2007
6 juin 2007 à 14:26
Salut psyjc,

Je met à dispo ton code avec les modifs de MusSDev sur mon espace Web.
Je pense aux gens comme moi qui ont la flemme de faire des copier/coller.

. Version du 06.06.2007
. Nom Fichier function.excel.inc.php
. http://damien.dutka.free.fr/function.excel.inc.php

(Bien sûr si ça dérange les modérateurs ou bien toi psyjc, je retirerais le fichiers)
MusSDev Messages postés 2 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 8 juin 2007
27 avril 2007 à 14:39
Salut,
Cette class fonctionne très bien mais seulement pour générer des fichiers de petites taille. Après quelques recherches, les lenteurs sont du aux fonction maxX() et maxY() et plus particulièrement maxY().
J'ai donc procédé a des modifications de la classe pour obtenir une génération instantané.
Ajout de deux variables :
var $csv = array();
var $maxY = 0;
var $maxX = 0;

Puis modifications des fonctions :
function addCol($array,$l){
$this->maxX++;
$this->csv[$l-1] = $array;
}

function addLine($array,$c){
$this->maxY++;
$this->maxX = count($array);
for($i=0;$i<count($array);$i++){
$this->csv[$i][$c-1] = $array[$i];
}
}
...

Et enfin les lignes dans les fonctions createCSV & downloadCSV :
for($y=0;$y<$this->maxY();$y++){
for($x=0;$x<$this->maxX();$x++){
par
for($y=0;$y<$this->maxY;$y++){
for($x=0;$x<$this->maxX;$x++){

@+

PS: je cherche a intégrer la gestion de l'unicode pour afficher correctement les accents sous Excel et je reviendrais poster un message
Guydjar Messages postés 1 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 22 février 2007
22 févr. 2007 à 16:28
Slt!
Je suis dans le meme cas qu'ORSAM, je suis debutant et je souhaiterai savoir comment on utilise cette class.
Si quelqu'un l'utilise pour une appli, ca m'interesse apres c'est de l'adaptation.

Merci

Guydjar
rmic210282 Messages postés 9 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 5 février 2007
29 janv. 2007 à 11:50
slt,
merci pour cette class, cependant que je lance la methode setvalueat(X,Y,V), la case (X,Y) ne change pas de valeur PAR CONTRE elle s'ajoute Y lignes plus bas! ça fait un addline avec un offset de Y lignes lol !
zoukozouko Messages postés 148 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 21 janvier 2009
7 déc. 2006 à 13:09
Possible d'avoir un petit code pour LIRE les fichiers excel???
Merci
orsam Messages postés 28 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 22 octobre 2007
17 janv. 2005 à 23:05
Salut !

Bon, ton code est exactement ce qu'il me faut, cependant, je suis debutant en PHP, et je n'est aucune idée de la facon d'utiliser ta "Class".

Peut tu me donner quelques petites explications ?

Merci

Orsam
Rejoignez-nous