Export to Excel (PDF)
Pozdrav ekipi. Hocu da exportujem podatke iz mysql tabele u excel, ali imam i nasa slova sa kvakicama. Ja sam malo istrazivao i uspio doci do ovoga:
Kôd:
<?php |
Jesu li podaci u tabeli uredni ?
|
Da uredni si to mi ne predstavlja problem !
|
Da li ti je taj .php fajl u UTF-8 charsetu?
|
Citat:
|
|
dodaj BOM na pocetak
|
Citat:
|
umesto:
PHP kôd:
PHP kôd:
|
Starije verzije Excela ne kapiraju UTF8 BOM na pocetku, pa mozes da probas i ovako da saljes fajl:
PHP kôd:
$filename je ime koje se nudi korisniku kod snimanja, $csv je string sa CSV podacima ($header i $data u tvom slucaju). Mana je sto moras da imas PHP koji podrzava mb_convert_encoding() f-ju, ali zato radi sa svim zivim Excelima koje sam probao... |
Moze li ovako da se to skucka, nesto sam na brzinu pokusao:
Kôd:
<?php |
Funkcija toCSV za prva dva argumenta ($header i $data) očekuje nizove, a ti joj prosleđuješ stringove
|
Ajde sacekacemo sta @ivanhoe kaze, mozda ovo moze jednostavnije da se resi bez ovog mog komplikovanja.
|
pa nemam sta da kazem, funkcija je ok, nego joj ne prosledjujes dobro podatke, ovo sto ti branko rece...
Probaj ovako: PHP kôd:
|
@ivanhoe hvala sto se trudis.
Kad pokrenem ovaj skript napravi mi se .csv fajl koji sadrzi poruku o gresci: Kôd:
Invalid argument supplied for foreach() on line 17 Kôd:
foreach($data as $line) |
Možda upit ne pronađe nijedan rezultat u bazi pa ovo stvara problem:
PHP kôd:
PHP kôd:
PHP kôd:
|
Da problem je bio kad nema ni jednog zapisa u bazi. Koristio sam ovja drugi nacin i evo mi sadrzaja test.csv fajla (Jedan red izgleda ovako):
Kôd:
"262"" ""Ilija"" ""Ivkovi?"" ""HET1"" ""Nepoznato"" ""222"" ""Nepoznato"" ""Nepoznato"" ""222"" ""06512345679"" ""IIvkogiv@mail.net""" |
Ne znam, kada testiram kod sebe radi, pokušaj da izvršiš upit posle izvršene konekcije:
PHP kôd:
Pogledaj i ovo: http://www.mysql.rs/2010/07/smece-u-...-zna-koji-put/ |
Citat:
Pokusavao sam malo da unapredim skript pa recimo da hocu da mi se ovaj export desava na klik dugmeta i uradio sledece: Kôd:
<html> Kôd:
"Sinisa ""Kova" |
Štampaš html kod pre cvs podataka.
PHP kôd:
|
1 Prilog(a)
To sad radi, dakle ne stampa se vise html kod. Evo da ne bih filozofirao kacim fajl kako izgleda jedan csv fajl, tacnije te tacke i to odsecanje slova, kad ga exportujem.
|
Postavi kompletan PHP kod vezan za ovu skriptu, da li si menjao nešto u funkcijama (toCSV i escape_csv) koje je @ivanhoe postavio.
|
Ovo je sve:
PHP kôd:
|
Štampaš prazne redove između dva dela php koda:
PHP kôd:
|
Konacno, to je to. Hvala puno. Nisam ni sanjao da ovo moze ovoliko problema da zadaje.
|
Da li se mogu ova setovanja hedera za csv fajl iskoristiti i za pdf. Ovaj skript radi ali slova sa kvakicama takodje ne prolaze.
PHP kôd:
|
1. http://www.fpdf.org/en/FAQ.php#q7
Citat:
Citat:
|
Sada se setih pogledaj i ove modifikovane verzije FPDF klase kojima je dodata podrška za UTF-8:
http://fpdf.org/en/script/script92.php http://acko.net/blog/ufpdf-unicode-u...sion-for-fpdf/ |
Hvala za ove linkove. Pregledao sam dosta ovih modifikovanih klasa gde je odradjena podrska za UTF-8 i vidim da to fantasticno radi. Testirao sam neke jednostavne skripte i uspeo dobiti pdf gde se slova sa kvakicama uredno prikazuju. Evo npr TCPDF klasa radi taj posao. Vracam se sad na moj problem gde treba da u tabelu sa par kolona smestim podatke iz mysql tabele. Npr za pocetak da krenem od ovoga sto sam vec postavio:
PHP kôd:
Kôd:
Call to undefined method TCPDF::FancyTable() |
Citat:
PHP kôd:
|
Da da vidim to, ali kad posaljem skript na izvrsenje nista se ne desi tj ne kreira se nikakav pdf fajl, a nema nikakvo obavjestenje o gresci.
|
Citat:
http://www.tcpdf.org/doc/classTCPDF....9125ee2f5b23a1 |
Da to je sad ok ali enkoding opet zeza, ista stvar ko i sa excel, tj iz baze mi ne iscitava č,ć . Posle konekcije sam jos uradio:
Kôd:
mysql_query("set names 'utf8'"); Kôd:
$strSQL=mysql_query("set names 'utf8'"); Kôd:
$header=array('Ime','Prežime','Br. kancelarije','Lokal','Dekt','VPN'); |
Ne znam koji si font podesio, ali u paketu sa TCPDF klasom nemaju svi fontovi podršku za sve utf8 karaktere, probaj neki od: freeserif, freesans, freemono, dejavusans, dejavuserif ...
Zatim pokušaj da podesiš enkoding na utf-8, mada bi to trebala da bude podrazimevana vrednost: http://www.tcpdf.org/doc/classTCPDF....d45046f94b7755 Zatim pokušaj da isključiš font subsetting: http://www.tcpdf.org/doc/classTCPDF....1bf20aacc5b36d |
Pa nista, samo sam u funkciji koja mi crta tabelu odradio ovo i proradilo je:
Kôd:
$this->AddFont('DejaVu','','DejaVuSansCondensed.ttf',true); |
|
@Br@nkoR izvinjavam se ! Koristio sam uporedno i jedan i drugi, kako nije bilo sanse da u TCPDF setujem ovaj DejaVu font (stalno mi javlja da ga ne pozna) onda sam iz ocaja pokusao da vidim sta ce biti ako ga pozovem iz ove tFPDF klase i prodje uspesno, ali zaboravih da naglasim, izvini jos jednom.
|
Nema problema, za TCPDF klasu u folderu fonts se nalaze fontovi a nazivi su ime fajla (bez ekstenzije), dakle dejavusans, dejavusanscondensed, dejavusansextralight, dejavusansmono, dejavuserif ... i variacije (i, b, bi)
|
Vreme je GMT +2. Trenutno vreme je 00:00. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.