Forum » Programiranje » Izvoz podatkov iz sql v excel
Izvoz podatkov iz sql v excel
xsenon ::
ojla,
pri izdelavi projekta imam cilj doati funkcijo izvoz cenika, ki bi mi omogočila nrediti .xls (excel) in ga ponudila kot download. Podatke imam shranjene v sql bazi. Programski jezik, ki ga uporabljam je php. ČE obstaja kakšna soap varjanta (že realizirana) bo prav tako vredu.
pri izdelavi projekta imam cilj doati funkcijo izvoz cenika, ki bi mi omogočila nrediti .xls (excel) in ga ponudila kot download. Podatke imam shranjene v sql bazi. Programski jezik, ki ga uporabljam je php. ČE obstaja kakšna soap varjanta (že realizirana) bo prav tako vredu.
etpot - Exploit The Power Of Technology
Poldi112 ::
Tole dela še kar ok:
http://pear.php.net/package/Spreadsheet...
http://pear.php.net/package/Spreadsheet...
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
nimbix ::
Obstaja še en izredno preprost način, ob katerem se prvič primeš za glavo.
1. Generiraš HTML file, podatke daš v navadno HTML tabelo
2. Datoteki daš končnico .xls
3. Se nekaj časa čudiš, da Excel in OpenOffice to grozoto oba odpreta in prikažeta kot normalno xls datoteko
1. Generiraš HTML file, podatke daš v navadno HTML tabelo
2. Datoteki daš končnico .xls
3. Se nekaj časa čudiš, da Excel in OpenOffice to grozoto oba odpreta in prikažeta kot normalno xls datoteko
xsenon ::
sedaj mi je uspelo narediti da zgeneriaram željeni html file, ampak mi ne uspe katero funkcijo naj uporabim da mi bo fajl ponudil kot download/save as. Se pravi ko kliknemo izvozi imenik hočem da mi ponudi zgeneriran file kjer me upraša ali ga želim odpreti oz shraniti.
etpot - Exploit The Power Of Technology
Poldi112 ::
Pri mojem to dela avtomatično - druge opcije kot dl mislim da sploh ni :)
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
xsenon ::
ja samo še prej sem naletel na drugo težavo in sicer. Do zdej sm pršu do tega da mi php zgenerira dokument se pravi ko poženem skripto se mi odpre okno v brskalniku kjer vidm html file vse tabele in podatke v njih. Sedaj pa jaz želim te podatke zapisati v nek file katerega bom kaneje ponudil kot download. Sem poskušal s fopen in file write samo me zanima kako bi to naredil na bolj enostaven način. Se pravi kako naj jaz php skripti ki bere podatke iz baze in v browserju uspešno izpiše podatke rečem naj mi ta html vpiše v file.
etpot - Exploit The Power Of Technology
darkolord ::
Content-Disposition header nastavi, če misliš to, da ti kar isti file ponudi kot download s končnico .xls...
Zgodovina sprememb…
- spremenilo: darkolord ()
xsenon ::
ja samo Content-Disposition header mi bo prišel prav ko bom že imel zgeneriran file. Jaz pa ga zaenkrat še nimam. Trenutno mi skripta vse lepo izpiše v brskalniku (vidno na sliki). Sedaj pa mene zanima kako to kar mi skripta izpiše v brskalnik shranim v datoteko.
etpot - Exploit The Power Of Technology
darkolord ::
Ja možnosti imaš dve - da shraniš rezultat v ločen fajl in potem tistega "serviraš" ali pa da ti kar iz iste skripte ponudi možnost za download - torej, ko bi šel na ta tvoj test.php, bi ti brskalnik ponudil blabla.xls za download.
xsenon ::
za tole drugo zadevo me zanima kako naj naredim da mi bo ko bom šel na test.php ponudil download fajla.
etpot - Exploit The Power Of Technology
xsenon ::
sm že na dobri poti do uspeha:)
uporabil sem sledečo kodo:
če readfile podam file iz diska se pravi enak file kot ga zgenerira moja koda samo da sem ga kot html shranil na disk mi super lepo zgenerira xls. Problem se pojavi če mu kot readfile podam link do moje skripte (localhost/test.php) v tem primeru mi javi napako:
a je možno da je problem ker se skripta predougo izvaja?
uporabil sem sledečo kodo:
<?php header('Content-type: application/xls'); header('Content-Disposition: attachment; filename="downloaded.xls"'); readfile('test.html'); ?>
če readfile podam file iz diska se pravi enak file kot ga zgenerira moja koda samo da sem ga kot html shranil na disk mi super lepo zgenerira xls. Problem se pojavi če mu kot readfile podam link do moje skripte (localhost/test.php) v tem primeru mi javi napako:
<br /> <b>Warning</b>: readfile(http://localhost/pregledporabe/test.php) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in <b>C:\AppServ\www\pregledporabe\test12.php</b> on line <b>9</b><br />
a je možno da je problem ker se skripta predougo izvaja?
etpot - Exploit The Power Of Technology
xsenon ::
tudi to napako mi je uspelo poravit in sicer mojo skripto sem prestavil na drug server (ni več na localhost) in zadeva deluje:).
etpot - Exploit The Power Of Technology
xsenon ::
u to bi blo super če se da naredit tako da lahko header dodam kar v test.php. Sem dodal ampak narobe ker zadeva ne deluje in sicer:
napaka ki mi jo javi ob:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pregledporabe\test.php:2) in C:\AppServ\www\pregledporabe\test.php on line 484
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pregledporabe\test.php:2) in C:\AppServ\www\pregledporabe\test.php on line 487
Warning: readfile(http://localhost/test.php) [function.readfile]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in C:\AppServ\www\pregledporabe\test.php on line 490
while ($row = mysql_fetch_array($result2, MYSQL_ASSOC)) { $var1=$row['phone1']; echo '<tr> <td>'.substr_replace($var1, 'XXX', 7, 10).'</td> <td>'.$row['phone2'].'</td> <td>'.$row['datum'].'</td> <td>'.round($row['duration'],2).'</td> <td>'.round($row['price'],2).'</td> <td>'.round($row['priceDDV'],2).'</td> <td>'.$row['destination'].'</td> </tr> '; } echo ' </tbody> </table> '; } } $db->close(); } header('Content-type: application/xls'); header('Content-Disposition: attachment; filename="downloaded.xls"'); readfile('http://localhost/test.php'); ?>
napaka ki mi jo javi ob:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pregledporabe\test.php:2) in C:\AppServ\www\pregledporabe\test.php on line 484
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pregledporabe\test.php:2) in C:\AppServ\www\pregledporabe\test.php on line 487
Warning: readfile(http://localhost/test.php) [function.readfile]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in C:\AppServ\www\pregledporabe\test.php on line 490
etpot - Exploit The Power Of Technology
DavidJ ::
> Cannot modify header information - headers already sent
Prestavi spodnje vrstice nad zanko.
header('Content-type: application/xls');
header('Content-Disposition: attachment; filename="downloaded.xls"');
Prestavi spodnje vrstice nad zanko.
header('Content-type: application/xls');
header('Content-Disposition: attachment; filename="downloaded.xls"');
"Do, or do not. There is no 'try'. "
- Yoda ('The Empire Strikes Back')
- Yoda ('The Empire Strikes Back')
xsenon ::
sem probal vendar se vedno ista napaka. Imam na sumu da je problem ko podam tale readfile in sicer ali je tole podajanje read fajla sploh ok ker v mojem primerju je read file skripta kliče sama sebe.
etpot - Exploit The Power Of Technology
DavidJ ::
Težko rečt, kaj je narobe, ker ne vidim vsega. Ampak, headerje moraš nastavit preden pošlješ kakršno koli informacijo odjemalcu -- vsak echo, print, tudi če daš navaden presledek pred začetek <?php ?> ne bo delalo. <?php mora biti prva stvar v datoteki.
"Do, or do not. There is no 'try'. "
- Yoda ('The Empire Strikes Back')
- Yoda ('The Empire Strikes Back')
Zgodovina sprememb…
- spremenil: DavidJ ()
xsenon ::
Hvala vsem za pomoč. Sedajmi je uspelo in vse deluje BP:)
Rešitev za ostale, ki se bodo srečali s podobno težavo
na prvo mesto pred vso ostalo kodo vpiši (pomembno je da prej ni nobene druge kode niti presledka!)
readfile ni potrebno dodati (ker kot source vzame skripto).
to je vsa umetnost:)
Hvala vsem za pomoč
Rešitev za ostale, ki se bodo srečali s podobno težavo
na prvo mesto pred vso ostalo kodo vpiši (pomembno je da prej ni nobene druge kode niti presledka!)
<?php header('Content-type: application/xls'); header('Content-Disposition: attachment; filename="downloaded.xls"'); ?>
readfile ni potrebno dodati (ker kot source vzame skripto).
to je vsa umetnost:)
Hvala vsem za pomoč
etpot - Exploit The Power Of Technology
Zgodovina sprememb…
- spremenil: xsenon ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Download vsebine strani s JSOddelek: Izdelava spletišč | 2570 (1868) | MrBrdo |
» | PHP + MySQL excel export pomoč?Oddelek: Izdelava spletišč | 1498 (1345) | sumoborac |
» | Jasper subreportOddelek: Programiranje | 1644 (1393) | nightrage |
» | [JAVA] problem z linkom na download datoteke (v spletni aplikaciji)Oddelek: Programiranje | 1023 (961) | Fizikalko |
» | PHP autentikacija - problemOddelek: Izdelava spletišč | 1613 (1418) | krho |