Avatar billede heyn Nybegynder
26. juni 2010 - 14:46 Der er 8 kommentarer og
1 løsning

Generere et excel-dokument af data

Hej Eksperter

Jeg har en del data som vises i en tabel. Brugerne skal have mulighed for at downloade dem som et excel-dokument. Data henter jeg fra en MySQL database.
Jeg har aldrig prøvet at generere excel-dokumenter i php, men man har fortalt mig det er muligt.

Data kunne f.eks. være

Fornavn Efternavn Fødselsdag
Jens    Jensen    300365
Peter  Petersen  310365
Hans    Hansen    010465

Smarte løsninger som f.eks. at generere det via anvendelse af phpMyAdmin el. lign. duer ikke da de kommende brugere intet ved om databaser.

Har nogle et forslag

Mvh Christian
Avatar billede majbom Novice
26. juni 2010 - 14:54 #1
Avatar billede heyn Nybegynder
26. juni 2010 - 15:08 #2
Jeg forstår ikke rigtigt?

Er Spreadsheet_Excel_Writer en funktion som er indbygget i php?
Skal den være includeret i php på udbyderens server?
Er det en fil som jeg includerer i det php-dokument som skal generere excelfilen?
Avatar billede dkfire Nybegynder
26. juni 2010 - 16:26 #3
splazz: godt forslag, men de skriver selv på siden: "Spreadsheet_Excel_Writer is outdated and needs a complete rewrite. If you want to help with this task please get in touch with us. Otherwise we don't recommend this package for new development."

Jeg vil foreslå dig at lave en cvs fil som dine bruger kan importere i Excel. Det vil være den letteste måde.

Du kan jo også spørge din host om de har installeret nogle ekstra moduler som kan dette.
Avatar billede coderdk Praktikant
26. juni 2010 - 19:01 #4
PHPExcel virker fint, og understøtter Excel 2007 (OpenXML/xlsx) http://www.codeplex.com/PHPExcel
Avatar billede coderdk Praktikant
26. juni 2010 - 19:02 #5
Avatar billede coderdk Praktikant
26. juni 2010 - 19:13 #6
..Men ja, en CSV er måske godt nok i dette tilfælde - Det er meget simpel data, trods alt.
Avatar billede majbom Novice
26. juni 2010 - 21:48 #7
-> dkfire - jeg beklager min elendige research, jeg havde lidt travlt.

det ville sikkert være nok med en kommasepareret fil, som der bliver nævnt ja.
Avatar billede heyn Nybegynder
27. juni 2010 - 15:50 #8
Mange tak coderdk. Det virker ganske rigtigt. Der er bare ét problem. Den placerer en fil på serveren.
Det er jo ikke meningen. Den skal downloades.
De kommende brugere har ikke de nødvendige evner til at gå ind og slette filer i webhotellet.
Desuden fungerer det ikke hvis der allerede findes en fil med samme navn i mappen.

Har du en god ide til det?

Under alle omstændigheder - Smid et svar.

Mvh Christian
Avatar billede coderdk Praktikant
27. juni 2010 - 16:59 #9
Skriv filen i et temporært bibliotek, brug evt tempnam, og få browseren til at downloade den, og slet den bagefter:

header( "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" );
header( "Content-Disposition: attachment; filename=filnavn.xslx" );
readfile( $dit_temp_navn );
unlink( $dit_temp_navn );

:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester