bonjour à tous, j'ai cherché pendant quelque temps un code pour lire les fichiers excels afin de mettre à jour ma base de donnée, de maniére automatique.
Et un bon jour je suis tombé dessus par azard sur internet. La classe n'est donc pas de moi par contre l'exemple qui tous simple,lui , est de ma conception.
Source / Exemple :
<?php
require_once 'Excel/reader.php';
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('CP1251');
/***
- if you want you can change 'iconv' to mb_convert_encoding:
- $data->setUTFEncoder('mb');
*
/***
- By default rows & cols indeces start with 1
- For change initial index use:
- $data->setRowColOffset(0);
*
/***
- Some function for formatting output.
- $data->setDefaultFormat('%.2f');
- setDefaultFormat - set format for columns with unknown formatting
*
- $data->setColumnFormat(4, '%.3f');
- setColumnFormat - set format for column (apply only to number fields)
*
$data->read('toto.xls');
/*
$data->sheets[0]['numRows'] - count rows
$data->sheets[0]['numCols'] - count columns
$data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column
$data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell
$data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"
if 'type' == "unknown" - use 'raw' value, because cell contain value with format '0.00';
$data->sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format
$data->sheets[0]['cellsInfo'][$i][$j]['colspan']
$data->sheets[0]['cellsInfo'][$i][$j]['rowspan']
error_reporting(E_ALL ^ E_NOTICE);
/*
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo "".$data->sheets[0]['cells'][$i][$j]."<br>";
}
echo "\n";
}
echo "".$data->sheets[0]['cells'][1][1]."<br>";
echo "".$data->sheets[0]['cells'][1][2]."<br>";
//print_r($data);
//print_r($data->formatRecords);
?>
Conclusion :
voici le lien du sie ou je l'ai trouvé:
http://freshmeat.net/projects/phpexcelreader/
enfin bon voila, j'ai trouvé cela assez interessant, c'est pour cela que je le propose.
5 juil. 2010 à 12:15
24 sept. 2009 à 10:43
c est bon en faite j ai trouvé.
Pour afficher le nom de la feuille :
echo "".$donne->boundsheets['0']['name']."
";
a plus tt le monde
24 sept. 2009 à 10:37
j'utilise ton petit script et il marche bien.
je voudrais juste la commande pour retrouver le nom de la feuille affin de pouvoir faire une recherche sur le nom de la feuille
merci pour vos réponses
29 juin 2009 à 06:51
j'ai déjà essayé d'utiliser cette classe mais comme à peu prêt toutes les classes pour lire les fichiers excel, elles posent problème lorsque le fichier est trop gros. Soit en mémoire, soit en temps d'exécution. Sinon pour les formats date et autres fonctionnalités je vous propose d'utiliser la classe PHPExcel qui est vraiment bien faite mais pareil si le fichier est trop gros ça pose problème. Le mien faisait 5Mo et 14500 lignes et ça marchait pas même avec 512Mo de mémoire dans le php.ini.
Cordialement,
Toshysound
30 mars 2009 à 00:00
je veux lire une colonne de type date, mais la lecture se convertir en type texte.
si quelqu'un peux m'aider je lui serai reconnaissant.
merci d'avance.
@+
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.