Importer un fichier.xls vers une base de données MySQL en php

Messages postés
1
Date d'inscription
vendredi 4 octobre 2013
Statut
Membre
Dernière intervention
4 octobre 2013
- - Dernière réponse :  codelag - 7 oct. 2013 à 09:58
Bonjour,
J'ai vraiment besoin de votre aide.
Je dois développer une application pour générer des rapport statistiques.
A partir des fichiers Excel et qui seront les tables dans la base de données Mysql.
j'ai déjà développer la partie pour la récupération de données en utilisant la bibliothèque PHPEXCEL mais je n'arrive pas à ajouter les tables à la base de données parce que j'ai un problème au niveau de nombre de champs de chaque table qui dépend des fichiers excel ayant des trentaines de colonnes et il n y a pas la possibilité d'utiliser les boucles dans une requête SQL.

Je vous remercie d'avance.
Afficher la suite 

2 réponses

Meilleure réponse
1
Merci
Bonjour ,
Es que l'importation et faites ?
es que les champs se remplisse ?
// si non laisse moi voir ton code .
c'est un problème de timing

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 203 internautes nous ont dit merci ce mois-ci

Commenter la réponse de rydweb
-1
Merci
Merci bcp rydweb.

le fichier excel e rempli.
le problème qua j'ai c'est que je ne sais pas comment faire pour importer en utilisant le code php pour enregistrer les données dans la base de données parce je dois à chaque fois importer plusieurs fichier sélectionnés ayant des nombres de colonnes différents.

voici mon code pour importer un fichier de 2 colonnes.


<?php

require_once('data.php');
error_reporting(E_ALL);

date_default_timezone_set('Europe/London');

/** PHPExcel */


// Include PHPExcel_IOFactory
include 'phpexcel/classes/PHPExcel/IOFactory.php';
include 'phpexcel/classes/PHPExcel.php';



$lien_vers_mon_document_excel = $_POST['file'];
echo '<input type="hidden" name="file"/>';

$file = basename($lien_vers_mon_document_excel);
$extention = $verif=substr (strrchr ($file, "." ), 1 );
$file_name = $verif=substr ($file, 0,strrpos($file, '.') );


if( $extention == 'xls' ||$extention == 'xlsx' || $extention == 'csv' || $extention == 'csvx')
{
// Read your Excel workbook
try {
$inputFileType = PHPExcel_IOFactory::identify($lien_vers_mon_document_excel);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($lien_vers_mon_document_excel);

} catch(Exception $e) {
die('Error loading file "'.pathinfo($lien_vers_mon_document_excel,PATHINFO_BASENAME).'": '.$e->getMessage());
}


// Get worksheet dimensions
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();



echo '<br>hight::::'.$highestRow.'<br>';
echo '<br>Col::::'.$highestColumn.'<br>';




$array_data = array();
$XLSXDocument = new PHPExcel_Reader_Excel2007();
$Excel = $XLSXDocument->load($lien_vers_mon_document_excel);
echo $file;
// Get worksheet dimensions
// $sheet = $objPHPExcel->getSheet(0);
// $highestRow = $sheet->getHighestRow();
// $highestColumn = $sheet->getHighestColumn();

$sheet = $objPHPExcel->getSheet(0);




// get all the row of my file
$rowIterator = $Excel->getActiveSheet()->getRowIterator();
foreach($rowIterator as $row) {
$cellIterator = $row->getCellIterator();
// Loop all cells, even if it is not set
$cellIterator->setIterateOnlyExistingCells(false);
$rowIndex = $row->getRowIndex ();
$array_data[$rowIndex] = array('A'=>'', 'B'=>'','C'=>'','D'=>'');
echo'<br><br>index_________________'.$rowIndex;
foreach ($cellIterator as $cell) {

if('A' == $cell->getColumn()) {
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
} else
if('B' == $cell->getColumn()) {
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
} else if('C' == $cell->getColumn()) {
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
} else if('D' == $cell->getColumn()) {
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
}



$sql1 = $pdo->prepare('create table '.$file_name.'('.$array_data[1]["A"].' varchar(50),'.$array_data[1]["B"].' varchar(50))');
$sql2 = $pdo->prepare('insert into '.$file_name.'('.$array_data[1]["A"].', '.$array_data[1]["B"].') value("'.$array_data[$rowIndex]["A"].'","'. $array_data[$rowIndex]["B"].'")');


} echo 'A'.$array_data[$rowIndex]['A'].' '.$array_data[$rowIndex]['B'].'<br>';
$sql = 'create table '.$file_name.'('.$array_data[1]["A"].' varchar(50),'.$array_data[1]["B"].' varchar(50))';
echo'<br>Sql:::::::'.$sql.'<br>';
$sql1->execute();
$sql2->execute();

}*/



$sql->execute();
$sql1->execute();

}


Else echo '<p>Vous devez choisir un fichier excel ou csv!</p>';
Commenter la réponse de codelag