J'ai essayé de rechercher des plugins pour importer un fichier Excel dans la base de données MySQL, l'un d'eux est http://code.google.com/p/php-Excel-reader/
L'outil est si puissant qu'il affiche l'intégralité du contenu Excel en html.
Cependant, je pense que j'ai juste besoin de lire le fichier Excel et d'extraire le contenu, par exemple, dans un tableau, puis d'écrire une instruction SQL pour entrer dans la base de données.
Y aurait-il de bons codes et packages? Merci!
C'est le meilleur plugin avec une documentation et des exemples appropriés
Point positif: vous pouvez demander de l'aide dans son forum de discussion et vous obtiendrez une réponse dans la journée de l'auteur lui-même, vraiment impressionnant.
Parfois, j'ai besoin d'importer de gros fichiers xlsx dans la base de données, donc j'utilise spreadsheet-reader
car il peut lire le fichier par ligne. C'est une manière très efficace en mémoire d'importer.
<?php
// If you need to parse XLS files, include php-Excel-reader
require('php-Excel-reader/Excel_reader2.php');
require('SpreadsheetReader.php');
$Reader = new SpreadsheetReader('example.xlsx');
// insert every row just after reading it
foreach ($Reader as $row)
{
$db->insert($row);
}
?>
Si vous pouvez convertir .xls en .csv avant le traitement, vous pouvez utiliser la requête ci-dessous pour importer le csv dans la base de données:
load data local infile 'FILE.CSV' into table TABLENAME fields terminated by ',' enclosed by '"' lines terminated by '\n' (FIELD1,FIELD2,FIELD3)
Si vous enregistrez le fichier Excel en tant que fichier CSV, vous pouvez l'importer dans une base de données mysql à l'aide d'outils tels que PHPMyAdmin
Je ne sais pas si cela vous aiderait dans votre situation, mais un fichier csv manuellement ou par programme serait beaucoup plus facile à analyser dans une base de données qu'un fichier Excel, j'aurais pensé.
EDIT: Je suggérerais cependant de regarder les autres réponses plutôt que les miennes puisque la réponse @diEcho semble plus appropriée.
J'ai écrit une classe héritée:
<?php
class ExcelReader extends Spreadsheet_Excel_Reader {
function GetInArray($sheet=0) {
$result = array();
for($row=1; $row<=$this->rowcount($sheet); $row++) {
for($col=1;$col<=$this->colcount($sheet);$col++) {
if(!$this->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint']) {
$val = $this->val($row,$col,$sheet);
$result[$row][$col] = $val;
}
}
}
return $result;
}
}
?>
Je peux donc faire ceci:
<?php
$data = new ExcelReader("any_Excel_file.xls");
print_r($data->GetInArray());
?>