Comment récupérer les données d'un txt ou xls

Nagasashi -  
 Bobleponge -
Bonjour,
Après quelques rechercher pour le moins infructueuse, je me tourne vers vôtre savoir ;).
Voici mon soucis:
A l'origine, j'ai un fichier excel (.xls), et je droit remplir une table d'une base de donnée contenant plusieurs champs.

J'aimerais donc, si possible, récupérer ligne par ligne, cellule par cellule les information de mon fichier, puis, à chaque changement de ligne, lancer ma requête SQL (INSERT INTO) avec les informations précédemment récupérées.

Puis, ne trouvant pas la solution pour les fichier xls, j'ai exporter le .xls en .txt en y mettant des ";" pour chaque changement de cellule, croyant que ça allé m'aidé... Mais, j'ai pas trouvé plus.

Si quelqu'un a une solution à me proposé, soit avec le .xls directement, soit avec le .txt, je suis preneur, quelque soit le langage ( après toute est question interprétation, et ça, je m'en occuperais ^^)

Merci d'avance.

4 réponses

Bobleponge
 
En C# ca se fait très facilement via le txt..

En tete :
using System.IO;  

Code :
StreamReader reader = new StreamReader("monFic.txt");  
string[] cells;  
string line = reader.ReadLine();  
while (!reader.EndOfStream)  
{  
     cells = line.Split(';');  
     // Ici tu fais ta requete SQL "dynamique", je ne la mets pas puisque  
     //  tout depends sur quelle type de base tu te connectes etc..  
     // Il existe des classes toutes faites pour te connecter aux db,  
     // te reste plus qu'a fouiner un peu sur le Web  
     // Et utiliser l'objet ici en executant ta requete du type :   
monObj.Exec("INSERT INTO ... (id, name) VALUES (" + cells[0] + ", '" + cells[1] + "')");  
     line = reader.ReadLine();  
}  


Edit : N'empeche que ca reste super vague en disant "n'importe quel langage" !
1
W95Psp Messages postés 106 Statut Membre 36
 
Bonjour,
Tu peut le convertir en csv, et si tu programme en PHP (Tu ne dit pas en quoi tu programme), il y a une commande faite exprès pour traiter les csv :
http://www.journaldunet.com/...

A+
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
De meme en php tu as la fonction explode():

<?php
	private $contenu_de_ton_fichier_txt;
	
	$tabDonnees = explode(';',$this->contenu_de_ton_fichier_txt);
	$nbDonnees = count($tabDonnees);
?>


puis tu parcours ton tableau dans une boucle.

encore mieux pour toi:
faire un double tableau[ligne][element]

Donc imaginons que le caractere de separation de ligne soit '\n', on aurais:

<?php
	private $contenu_de_ton_fichier_txt;
	
	$tabLigne = explode('\n',$this->contenu_de_ton_fichier_txt);
	$nbLigne = count($tabLigne);
	for ($i = 0; $i < $nbLigne; $i++)
	{
		$tabDonnees[$i] = explode(';',$tabLigne[$i]);
		$nbDonnees = count($tabDonnees);
		for ($j = 0; $j < $nbLigne; $j++)
		{
			echo $tabDonnees[$i][$j]; //la case sur la ligne i colonne j de ton fichier xls
		}
	}
?>
0
Bobleponge
 
Je me permets juste de corriger ton dernier commentaire :
echo $tabDonnees[$i][$j]; //la case sur la ligne i + 1 colonne j + 1de ton fichier xls


Puisque sur Excel les indices commencent a 1 et A ;)
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
effectivement ^^
petit code fait a l'avavite, donc pas vraiment fait attention. M%ais si l'erreur est dans le commentaire c'est pas trop grave ^^
0
Bobleponge
 
lol tout a fait, c'était plus pour ceux qui seraient susceptibles, dans un futur aussi loin soit-il, de copier/coller le code sans le comprendre et de se demander pourquoi ils obtiennent la cellule suivante.. (on n'sait jamais sur qui on peut tomber :p)
0
Nagasashi
 
Merci à tous ^^
Problème résolut =D
0