par
nagstef » 28 sept. 2018, 21:50
Bonjour,
J'utilse la class PHPEXCEL afin de récupérer un ficher Excel, le lire, ligne par ligne, cellule par cellule, pour intégrer les données dans une base sql.
Je sais qu'elle est considérée comme DEPRECATED, et promis, je me lancerai sur un autre outil, mais actuellement, j'ai besoin de cela..
Dans le principe, je lis chaque ligne de la feuille excel, je prends chaque cellule de la ligne, et au final je fais un INSERT de la ligne que j'ai récupéré, etc.. jusqu'à la fin de la feuille !
J'utilise ce code pour cela :
Code : Tout sélectionner
foreach($sheet->getRowIterator() as $row)
{
// On boucle sur les cellules de la ligne
foreach ($row->getCellIterator() as $cell1)
{
$cell=$cell1->getFormattedValue();
if ($cell==Null or strlen($cell)==0) {$cell=' ';}
$value=$value."\"".$cell."\",";
}
}
Le souci, apparemment, c'est qu'en faisant "foreach ($row->getCellIterator() as $cell1) ", si la cellule est vide, il passe à la prochaine, sans la considérer comme vide et onc ne traite même pas ce qu'il y a entre parenthèse.
Il apparait donc qu'à la fin, il manque des informations à intégrer lorsque je fais un
INSERT INTO table VALUES ($value)
Pourriez-vous m'aider à trouver la méthode pour récupérer à minima une info $cell="", lorsqu'une cellule est vide ?
En vous remerciant de l'aide apportée, toujours précieuse.
Stéphane
Bonjour,
J'utilse la class PHPEXCEL afin de récupérer un ficher Excel, le lire, ligne par ligne, cellule par cellule, pour intégrer les données dans une base sql.
Je sais qu'elle est considérée comme DEPRECATED, et promis, je me lancerai sur un autre outil, mais actuellement, j'ai besoin de cela.. :) :)
Dans le principe, je lis chaque ligne de la feuille excel, je prends chaque cellule de la ligne, et au final je fais un INSERT de la ligne que j'ai récupéré, etc.. jusqu'à la fin de la feuille !
J'utilise ce code pour cela :
[code]
foreach($sheet->getRowIterator() as $row)
{
// On boucle sur les cellules de la ligne
foreach ($row->getCellIterator() as $cell1)
{
$cell=$cell1->getFormattedValue();
if ($cell==Null or strlen($cell)==0) {$cell=' ';}
$value=$value."\"".$cell."\",";
}
}
[/code]
Le souci, apparemment, c'est qu'en faisant "foreach ($row->getCellIterator() as $cell1) ", si la cellule est vide, il passe à la prochaine, sans la considérer comme vide et onc ne traite même pas ce qu'il y a entre parenthèse.
Il apparait donc qu'à la fin, il manque des informations à intégrer lorsque je fais un
INSERT INTO table VALUES ($value)
Pourriez-vous m'aider à trouver la méthode pour récupérer à minima une info $cell="", lorsqu'une cellule est vide ?
En vous remerciant de l'aide apportée, toujours précieuse.
Stéphane