Tömbösdi
Sziasztok!
Excel fileból olvasok be adatot, a "Spreadsheet Excel Reader"-t használom hozzá.
Az adat bekerül a helyére, aztán megpróbálok olvasni belőle:Nem értem, hogy miért dobja a következő notice-t a php: "Undefined offset: 1 ...".
Az echoval rendesen kiírja az indexen lévő értéket, ami meg is felel az excel táblában láthatónak.
■ Excel fileból olvasok be adatot, a "Spreadsheet Excel Reader"-t használom hozzá.
Az adat bekerül a helyére, aztán megpróbálok olvasni belőle:
$data = new Spreadsheet_Excel_Reader();
$data->setUTFEncoder('iconv');
$data->setOutputEncoding('UTF-8');
$data->read('x.xls');
foreach($data->sheets as $sheet) {
echo $sheet["cells"][2][1]; //<-- itt kapom a notice-t
}
Az echoval rendesen kiírja az indexen lévő értéket, ami meg is felel az excel táblában láthatónak.
Az echoval rendesen kiírja az
A fenti
echo
-val? Vagy van egy másik valahol máshol? Mert a Notice arról szól, hogy az egyes indexű elem nem létezik azaz a$sheet["cells"][2][1]
nem létezik, de a$sheet["cells"][2]
minden valószínűség szerint igen. Azt ugye tudod, hogy egy Excel dokumentum több munkalapból (sheet) áll, és lehet hogy ezek egyikén nincsen a 3. sorának második oszlopa.Egyébként is érdemesebb a
Van valahol önálló doksija?
Documentation
Köszi a válaszokat! Igen ez
Igen ez lett végül, az egyik sheet-en nem volt meg az adott indexű cella, persze egy halom sheet-ből áll a dokumentum amivel teszteltem, nem néztem végig manuálisan mindet.
Kicsit off:
Az exceles adatokat egyébként mysql adatbázisba kell átpaterolni, és meglehetősen sokat. Egy sheet-en van kb 30-40 sorom, illetve kb 40*4 oszlopom (az oszlopok 4esével alkotnak egy csoportot), és a sheet-ek száma is 10+ a legkisebb dokiban is.
Jelenleg legegyszerűbb, és nyilván leglassabb módon illesztem be őket.
Ciklus megy soronként, aztán oszloponként, és minden 4. oszlopnál beszúrja az adatokat, ez elég sok query, de nincs ötletem, hogyan lehetne szebben, de főleg effektívebben megoldani.
Tipp?
Export