Bonjour.
je m'exerce sur php (symfony) depuis quelques temps. je me situe plut�t du c�t� d�butant !
Mais pour ne pas le rester trop longtemps, je fais une application sur la nutrition ( comme exercice ).
Pour r�sumer l'application: elle offre la possibilit� pour une personne de savoir ce qu'il y a dans son assiette.
Elle pourra savoir combien de calories fait son plat compos� de plusieurs aliments, sa quantit� de prot�ines, lipides, glucides, vitamines, ...
Le tout sur un repas, un jour, une semaine, ...
J'ai donc besoin de savoir quelle est la composition nutritionnelle des aliments de base !
J'ai pour �a le site ciqual. Et ce site partage ses donn�es... avec fichier excel.
J'aurais pr�f�r� une une BDD avec une API !
Je n'ai pas le choix, je vais devoir extraire ces donn�es et les rentrer dans ma BDD.
Voici � quoi ressemble le fichier Excel:
Il y a exactement 67 constituants pour chaque aliment ( 67 colonnes) pour 3185 aliments !
Je ne veux pas tous les constituants de chaque aliments, seulement une trentaine! ( �a fait d�j� moins de donn�es...)
Pour extraire, j'ai entendu parler de la librairie PhpSpreadsheet
Avec ce code appel� dans mon index.php, je r�cup�re les coordonn�es des cellules d'une ligne ( A2, B2, C2, ...) sous forme de tableau.
Code php : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php require __DIR__.'/vendor/autoload.php'; class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter { public function readCell($columnAddress, $row, $worksheetName = '') { if ($row >= 2 && $row < 3) { return true; } return false; } } function extraction() { $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xls'); $reader->setReadFilter( new MyReadFilter() ); $reader->setReadDataOnly(true); $spreadsheet = $reader->load("ciqual_2020.xls"); $worksheet = $spreadsheet->getActiveSheet(); $coordinates = $worksheet->getCellCollection()->getCoordinates(); return $coordinates; }
Je pourrai ensuite obtenir les valeurs des cellules (avec une boucle sur le