ugrás a tartalomhoz

Tömbösdi

therest · 2011. Szep. 14. (Sze), 17.01
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:

$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
}
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.
 
1

Az echoval rendesen kiírja az

Poetro · 2011. Szep. 14. (Sze), 20.13
Az echoval rendesen kiírja az indexen lévő értéket, ami meg is felel az excel táblában láthatónak.

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
$data->val($row, $col, $sheet_index)
formulát használni cellák adatainak elérésére, a dokumentáció is ezt ajánlja, valamint az elvégzi a szükséges ellenőrzéseket is.
2

Van valahol önálló doksija?

H.Z. v2 · 2011. Szep. 14. (Sze), 20.50
Van valahol önálló doksija? Magát a csomagot nem akartam letölteni (valami hasonlót akartam írni, csak szerettem volna biztosra menni) és a google-ben talált lapjukon nem lelem a dokumentációt. :(
3

Documentation

Poetro · 2011. Szep. 14. (Sze), 20.54
4

Köszi a válaszokat! Igen ez

therest · 2011. Szep. 14. (Sze), 23.11
Köszi a válaszokat!

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?
5

Export

Poetro · 2011. Szep. 15. (Cs), 00.06
Kiexportálod az egyes munkalapokat CSV-be, és akkor nem kell trükközni mindenféle marhaságokkal, főleg mivel a CSV soronként fogja neked beolvasni az adatokat, már csak egy megfelelő adatbázisba mentő függvényt kell csinálni.