Transformation fichier excel

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Transformation fichier excel

par Sylvie » 16 avr. 2008, 12:37

Que quelqu'un m'aide svp!!!!!!!!

par Sylvie » 15 avr. 2008, 15:51

Merci quand même d'avoir tenté de m'aidé.C'est cool de ta part.

par dogmongo » 15 avr. 2008, 15:41

autant pour moi je n'avais pas compris ta requete

par Sylvie » 15 avr. 2008, 15:01

Mais j'ai besoin de transformé mon fichier excel en récupérant le sdonnées dont j'ai besoin et en les mettant dans autre fichier excel ayant une forme différente.Je ne n'arrive pas à voir comment Xls magique pourrais m'aidé.

par dogmongo » 15 avr. 2008, 14:23

<?p


c'est quoi ca :shock:

Xls Magique est un scripts très utilse pour exporter tes donnée sous différent format acces axcel mysql xml :wink:

par Sylvie » 15 avr. 2008, 14:17

J'ai réussi à parsé mon fichier excel à l'aide de cette fonction.Qui m'a l'air plus juste.fgetcsv m'énervait.
<?p
class CSVFile implements Iterator {
	
	private $data;
	
	public function __construct($data,$separator = ',',$isFile=true) {
		if ($isFile) {
			$data = @file_get_contents($data);
			if ($data === false) {
				throw new Exception('File does not exists');
			}
		}
		$this->data = $this->parseFile($data,$separator);
	}
	
	private function parseFile($content,$separator) {
		$data = array();
		for($tok = strtok($content,"\r\n"); $tok !== false; $tok = strtok("\r\n")) {
			$data[] = explode($separator,$tok);
		}
		return $data;
	}
	function current () {
		return current($this->data);
	}
	function key () {
		return key($this->data);
	}
	function next () {
		next($this->data);
	}
	
	 {
		reset($this->data);
	}
	function valid () {
		return $this->key() !== null;
	}
	
}
?>
J'obtiens ceci:

Code : Tout sélectionner

Array ( [0] => ;Date;;Client;Mission;Tech.;Catégorie;Facturé;Total H.T.;Article 1;;;;;;Article 2;;;;;;Article 3;;;;;;Article 4;;;;;;Article 5;;;;;;Article 6;;;;;;Article 7;;;;;;Article 8;;;;;;Article 9;;;;;;Article 10;;;;;;Article 11;;;;;;Article 12;;;;;; [2] => ;01/02/2008;00000;Activlan;39479001;ADM03;Site;; ;INT-AUDIT;AUDIT GRATUIT NOUVEAUX CLIENTS -ATELIER-heure-;2,00; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; [3] => ;01/02/2008;00000;Activlan;39479007;TEC05;Atelier;x; ;INT-TEC;ADMINISTRATION-TECHNIQUE INTERNE ACTIVLAN-heure-;2,00; ; ; ;NOTE;Finalisation PB poste Nextira VL410;1,00; ; ; ;INT-TEC;ADMINISTRATION-TECHNIQUE INTERNE ACTIVLAN-heure-;0,20; ; ; ;NOTE;Contact TPB recuperation PC PORT;1,00; ; ; ;INT-RGT;RANGEMENT ACTIVLAN-heure-;3,50; ; ; ;NOTE;"Salle ""Matra""(GB.) et tri matos atelier";1,00; ; ; ;INT-RGT;RANGEMENT ACTIVLAN-heure-;1,00; ; ; ;NOTE;"Livraison Cartons ""matra"" SR.";1,00; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ; ;; ; ; ; ;
Maintenant je veux séparé ce contenu car le corps que je vais réutilisé est séparé à chaque fois par un ; et les différents articles par ;;;;;.J'utilise ce code pour continué le parsage:
<?p
$articles=explode(";;;;", $data);
 foreach ($articles as $article)
{
   //Récup des données réutilisables 
   list($str, $re) = explode(";", $line);
printr($re);
printr($str);


?>
Mais ca ne fonctionne pas.Pourquoi?Help please!

par Sylvie » 15 avr. 2008, 13:44

Comment ça?

par dogmongo » 15 avr. 2008, 10:44

bonjour,

regarde du coté XMLmagique :wink:

Transformation fichier excel

par Sylvie » 14 avr. 2008, 22:01

Bonjour,
J'ai un petit problème pour traiter un fichier csv.En fait j'ai un doc excel de cette forme :
Date||Client||Mission||Tech.||Catégorie||Facturé||Total H.T||Code Réf.|| Description||Qte PU HT||Remise||Réf||Description||Qte||PU HT||Remise||Réf||Description||Qte||PU HT ||Remise||Réf||Description||Qte||PU HTRemise|| .....
En fait chaque mot que j'ai écris représente une colone.On a les premières colones qui sont uniques et ensuite il ya des colones qui reviennent plusieurs fois dans le meme ordre c'est parceque ce sont des articles différents pour le meme client à la meme date.Ce que je veux c'est créé une ligne contenant des infos spécidique du tableaux excel et que chaque articles.Je voudrais un fichier de cette forme que je mettrais à son tour dans un fichier excel.
Article1:Date||Code||Contrat||Client||Mission||Tech.||Catégorie||Réf.||Description||Qte||PU HT||Remise||PU Rem.
Article2:Date||Code||Contrat||Client||Mission||Tech.||Catégorie||Réf.||Description||Qte||PU HT||Remise||PU Rem.
............................................et ainsi de suite
Voilà le code que j'ai commencé à mettre en place.Es-ce que mon raisonement vous parait juste?
<?php
//Lire le CSV  colonne par colonne
ini_set("auto_detect_line_endings", 1);
$current_row = 1;
$handle = fopen("C:\wamp\www\Maintenance\test.csv", "r");
//boucle pas encore bien défini à suivre demain
foreach ($lines as $line)

while ( ($liste = fgetcsv($handle, 10000, ",") ) !== FALSE )
{ n==0;
// J'enregistre toutes les données dans des variables
//pour être capable de gérer les variables redondantes on incrémente de 5 à chaque tour

      $date[] = $liste[0];
      $code[] = $liste[1];
      $client[] = $liste[2];
      $mission[] = $liste[3]; 
      $tech[] = $liste[4];     
      $categorie[] = $liste[5];
      $ref[] = $liste[8+n];
      $description[] = $liste[9+n];
      $qte[] = $liste[10+n]; 
      $puht[] = $liste[11+n]; 
      n==n+5;   
      $line=$date.$code.$client.$mission.$tech.$categorie.$ref.$description.$qte.$puht;
$fid = fopen('Maintenance.txt','a');

fwrite($fid,"$line\n");

fclose($fid);  }


?>
Merci d'avance pour votre aide