TORRENTs.RO

Go Back   TORRENTs.RO > GO ! > HelpDesk > Probleme

Probleme Ai o problema? Aici poti cere ajutorul altor utilizatori !

Reply
 
LinkBack Thread Tools Display Modes
Old 03-22-2008, 11:25 AM   #1 (permalink)
Dealer de usturoi
 
johnake's Avatar
 
Join Date: Oct 2007
Location: Cum dai coltu', pe dreapta
Posts: 3,084
Blog Entries: 4
Thanks: 65
Thanked 561 Times in 205 Posts
Rep Power: 6
johnake is on a distinguished road
Points: 51,125, Level: 99
Points: 51,125, Level: 99 Points: 51,125, Level: 99 Points: 51,125, Level: 99
Activity: 17%
Activity: 17% Activity: 17% Activity: 17%
Default Save HTML Table in XLS

Aveti un site scris in PHP cu o baza de date in spate... Datele sunt organizate in tabele si vreti sa le exportati in excel, gata formatate? Nimic mai simplu

In fisierul pe care-l vreti sa-l exportati (care contine tabelul), la inceput scrieti urmatoarele linii de cod (atentie sa fie intre tag'uri <? ?> sau <?php ?> inainte de orice cod HTML sau orice output generat de PHP):

PHP Code:
header("Content-Type: application/vnd.ms-excel");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("content-disposition: attachment;filename=numefisier.xls"); 
and you're ready to go

Este util cand doriti exportarea unor date dintr-o baza de date a MySQL in format XLS.
"Smecheria" sau "trick'ul" consta in faptul ca prin acele linii de cod fisierului HTML generat ii este schimbata extensia in xls, iar Microsoft Excel este "capabil" sa citeasca cod HTML si sa-l rendeze in format tabular.
__________________


----------------------------------------------------------------------------------------------------



Un barbat matur in toate privintele, face ce vrea si isi asuma toate consecintele! [Cedry2k]

Maybe if we felt any loss as keenly as we felt the death of one close to us, human history would be a lot less bloody.
johnake is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 03-22-2008, 12:50 PM   #2 (permalink)
Global Moderator
 
Penemue's Avatar
 
Join Date: Oct 2007
Location: RO
Posts: 1,821
Thanks: 0
Thanked 549 Times in 273 Posts
Rep Power: 4
Penemue will become famous soon enough
Points: 14,274, Level: 51
Points: 14,274, Level: 51 Points: 14,274, Level: 51 Points: 14,274, Level: 51
Activity: 32%
Activity: 32% Activity: 32% Activity: 32%
Default

Hai ma... nici chiar asa... nu invata copii prostii... cine stie ce programatori ajung si ne vom trezi in 2020 cu fisiere xls varza.

Intamplator, "trucul" asta functioneaza pentru ca Microsoft Excel recunoaste ca XLS-ul nu este valid, si automat porneste sistemul de recunoastere a documentului, recunoaste ca e HTML si converteste HTML-ul in XLS.

Problema este ca nu ai garantia ca acest mod de operare va exista si in versiuni viitoare de Excel. In plus, un numar tot mai mare de oameni folosesc OpenOffice, StarOffice sau chiar programe online Google de ex pentru a deschide fisiere XLS.
Nu te poti baza ca userul are fix Microsoft Excel.

Solutia cea mai simpla ar fi sa trimiti user-ului datele in format CSV (comma separated values) sau daca musai e nevoie sa fie XLS ai mai multe variante.

* sa folosesti o clasa php gata scrisa de altii de ex: Class: Excel Writer (excel, xls, excel writer, excelwriter) - PHP Classes

* sa citesti specificatiile xls si sa implementezi minimul necesar pentru a fi deschis xls-ul de orice program (spec aici: http://download.microsoft.com/downlo...cification.pdf )
__________________
Penemue is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 03-22-2008, 12:57 PM   #3 (permalink)
Dealer de usturoi
 
johnake's Avatar
 
Join Date: Oct 2007
Location: Cum dai coltu', pe dreapta
Posts: 3,084
Blog Entries: 4
Thanks: 65
Thanked 561 Times in 205 Posts
Rep Power: 6
johnake is on a distinguished road
Points: 51,125, Level: 99
Points: 51,125, Level: 99 Points: 51,125, Level: 99 Points: 51,125, Level: 99
Activity: 17%
Activity: 17% Activity: 17% Activity: 17%
Default

Quote:
Originally Posted by Penemue View Post
Hai ma... nici chiar asa... nu invata copii prostii... cine stie ce programatori ajung si ne vom trezi in 2020 cu fisiere xls varza.

Intamplator, "trucul" asta functioneaza pentru ca Microsoft Excel recunoaste ca XLS-ul nu este valid, si automat porneste sistemul de recunoastere a documentului, recunoaste ca e HTML si converteste HTML-ul in XLS.

Problema este ca nu ai garantia ca acest mod de operare va exista si in versiuni viitoare de Excel. In plus, un numar tot mai mare de oameni folosesc OpenOffice, StarOffice sau chiar programe online Google de ex pentru a deschide fisiere XLS.
Nu te poti baza ca userul are fix Microsoft Excel.

Solutia cea mai simpla ar fi sa trimiti user-ului datele in format CSV (comma separated values) sau daca musai e nevoie sa fie XLS ai mai multe variante.

* sa folosesti o clasa php gata scrisa de altii de ex: Class: Excel Writer (excel, xls, excel writer, excelwriter) - PHP Classes

* sa citesti specificatiile xls si sa implementezi minimul necesar pentru a fi deschis xls-ul de orice program (spec aici: http://download.microsoft.com/downlo...cification.pdf )
Nu a fost cu intentie rea scris tutorialul. Editeaza-l tu cum trebuie. Asta a fost ultimul meu post in aceasta sectiune. Nu ma dau mare expert, doar am incercat sa impart cunostintele mele cu aceasta comunitate. Daca ele sunt submediocre, atunci ma retrag onorabil. Pace.
__________________


----------------------------------------------------------------------------------------------------



Un barbat matur in toate privintele, face ce vrea si isi asuma toate consecintele! [Cedry2k]

Maybe if we felt any loss as keenly as we felt the death of one close to us, human history would be a lot less bloody.

Last edited by johnake; 03-22-2008 at 01:20 PM.
johnake is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 03-22-2008, 02:07 PM   #4 (permalink)
Global Moderator
 
Penemue's Avatar
 
Join Date: Oct 2007
Location: RO
Posts: 1,821
Thanks: 0
Thanked 549 Times in 273 Posts
Rep Power: 4
Penemue will become famous soon enough
Points: 14,274, Level: 51
Points: 14,274, Level: 51 Points: 14,274, Level: 51 Points: 14,274, Level: 51
Activity: 32%
Activity: 32% Activity: 32% Activity: 32%
Default

Hai nu te supara acuma. E ok ca aduci contributii la sectiunea asta de tutoriale, chiar apreciem toti chestia asta.
Trebuie doar sa fii atent ce sfaturi dai pentru ca poti face uneori mai mult rau decat bine.

Citesc frecvent blogul unui tip de la Microsoft, Raymond Chen (The Old New Thing), care a lucrat inca dinainte sa fie Windows acolo, si deseori sunt uimit de cate artificii si improvizatii trebuie sa faca Microsoft pentru a pastra compatibilitatea cu programe care se folosesc de chestii nedocumentate.

De exemplu, cand au facut trecerea de la Windows 95 la Windows 98, programatorii au facut un sistem mai bun de Control Panel, insa au observat ca foarte multe drivere video crapau la instalare.

Testand driverele au observat ca in timpul instalarii, in spatele ferestrei de setup, programele respective deschideau applet-ul de Display Properties, cautau Tab-ul Settings, dadeau click pe tab-ul ala, dadeau click pe Advanced Settings si apoi bifau o optiune acolo. Aceste chestii nu erau necesare deoarece Microsoft oferea functii API pentru a bifa chestia aia, dar programatorii nu au fost suficient de interesati sa caute functiile.
In Windows 98, nu au mai dat la clasa ferestrei de la Display Properties acelasi nume ca pe Windows 95 (de ex in loc de "cpl_wndDisplay" i-au zis "wndDisplayProps") si pentru ca installerele nu mai gaseau numele clasei crapau.
Programatorii au trebuit practic pentru compatibilitate sa incarce o fereastra invizibila care avea numele clasei acelasi cu windows 95, fereastra asta captura click-urile, incarca fereastra noua si le pasa mai departe.

Ce vreau sa zic este ca tot acest cod NU era necesar, dar MS au fost nevoiti sa il adauge pentru compatibilitate cu drivere stricate de programatori prosti. Insa, nu erau obligati.

La fel ca in cazul de fata, daca multi vor face cum zici tu, Microsoft poate va fi in viitor obligat sa suporte tehnica asta nedocumentata doar pentru ca site-uri si programe sa nu crape (normal ca se da vina pe Microsoft).

Nu e bine si nu e frumos sa faci asa programe si site-uri, bazandu-te ca MS va suporta la infinit chestii nedocumentate, si in acelasi timp sa nu te gandesti ca poate userul foloseste altceva in loc de MS Excel.
__________________
Penemue is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 03-22-2008, 02:30 PM   #5 (permalink)
Dealer de usturoi
 
johnake's Avatar
 
Join Date: Oct 2007
Location: Cum dai coltu', pe dreapta
Posts: 3,084
Blog Entries: 4
Thanks: 65
Thanked 561 Times in 205 Posts
Rep Power: 6
johnake is on a distinguished road
Points: 51,125, Level: 99
Points: 51,125, Level: 99 Points: 51,125, Level: 99 Points: 51,125, Level: 99
Activity: 17%
Activity: 17% Activity: 17% Activity: 17%
Default

Quote:
Originally Posted by Penemue View Post
Hai nu te supara acuma. E ok ca aduci contributii la sectiunea asta de tutoriale, chiar apreciem toti chestia asta.
Trebuie doar sa fii atent ce sfaturi dai pentru ca poti face uneori mai mult rau decat bine.

Citesc frecvent blogul unui tip de la Microsoft, Raymond Chen (The Old New Thing), care a lucrat inca dinainte sa fie Windows acolo, si deseori sunt uimit de cate artificii si improvizatii trebuie sa faca Microsoft pentru a pastra compatibilitatea cu programe care se folosesc de chestii nedocumentate.

De exemplu, cand au facut trecerea de la Windows 95 la Windows 98, programatorii au facut un sistem mai bun de Control Panel, insa au observat ca foarte multe drivere video crapau la instalare.

Testand driverele au observat ca in timpul instalarii, in spatele ferestrei de setup, programele respective deschideau applet-ul de Display Properties, cautau Tab-ul Settings, dadeau click pe tab-ul ala, dadeau click pe Advanced Settings si apoi bifau o optiune acolo. Aceste chestii nu erau necesare deoarece Microsoft oferea functii API pentru a bifa chestia aia, dar programatorii nu au fost suficient de interesati sa caute functiile.
In Windows 98, nu au mai dat la clasa ferestrei de la Display Properties acelasi nume ca pe Windows 95 (de ex in loc de "cpl_wndDisplay" i-au zis "wndDisplayProps") si pentru ca installerele nu mai gaseau numele clasei crapau.
Programatorii au trebuit practic pentru compatibilitate sa incarce o fereastra invizibila care avea numele clasei acelasi cu windows 95, fereastra asta captura click-urile, incarca fereastra noua si le pasa mai departe.

Ce vreau sa zic este ca tot acest cod NU era necesar, dar MS au fost nevoiti sa il adauge pentru compatibilitate cu drivere stricate de programatori prosti. Insa, nu erau obligati.

La fel ca in cazul de fata, daca multi vor face cum zici tu, Microsoft poate va fi in viitor obligat sa suporte tehnica asta nedocumentata doar pentru ca site-uri si programe sa nu crape (normal ca se da vina pe Microsoft).

Nu e bine si nu e frumos sa faci asa programe si site-uri, bazandu-te ca MS va suporta la infinit chestii nedocumentate, si in acelasi timp sa nu te gandesti ca poate userul foloseste altceva in loc de MS Excel.
Nu am testat pe StarOffice dar OpenOffice il deschide. Stiu ca csv este un format universal acceptat de mai toate aplicatiile office Microsoft si non-Microsoft. Am cautat foarte mult solutii privind exportul datelor din MySQL in format XLS, gata formatat (dupa un tipar definit). Nu stiu daca e cea mai buna solutie, dar pe mine m-a ajutat in compania unde lucrez.
__________________


----------------------------------------------------------------------------------------------------



Un barbat matur in toate privintele, face ce vrea si isi asuma toate consecintele! [Cedry2k]

Maybe if we felt any loss as keenly as we felt the death of one close to us, human history would be a lot less bloody.
johnake is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


LinkBacks (?)
LinkBack to this Thread: http://forum.torrents.ro/probleme/2479-save-html-table-xls.html
Posted By For Type Date
Excel Writer - PHP Classes This thread Refback 07-21-2009 02:32 PM
Class: Excel Writer - PHP Classes This thread Refback 01-13-2009 05:27 PM
Class: Excel Writer - PHP Classes This thread Refback 10-27-2008 12:18 AM
Class: Excel Writer - PHP Classes This thread Refback 08-30-2008 10:14 AM
Class: Excel Writer - PHP Classes This thread Refback 07-30-2008 09:28 PM
Site content newsletter - PHP Classes This thread Refback 03-26-2008 01:59 AM


All times are GMT +2. The time now is 04:16 PM.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0
2005-2010 TORRENTs.RO