[PHP]Mysql -> Excel - script werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In onderstaand script wil ik de resultaten uit een mysql-query exporteren naar excel.
Normaal gesproken moet het werken wanneer je een tabel op het scherm krijgt om de headers :
PHP:
1
2
3
    header("Content-Type: application/x-msexcel;"); 
    header("Content-type: application/vnd.ms-excel"); 
    header("Content-Disposition:attachment; filename=filenaam.xls");
toe te voegen.

Nu zit ik op een server te werken en heb ik de tabel op het scherm zoals ik em graag in excel zou zien. Echter als ik de headers toevoeg, krijg ik nog steeds de tabel op het scherm.
Dit script heb ik al meerdere malen gebruikt en werkt normaal gesproken altijd.
Enkel op deze server krijg ik het niet aan de gang.

Ik heb al gezocht of dit aan een instelling in php ofzo kan liggen, maar zonder resultaat.

Weet iemand waar dit aan kan liggen en wat de oplossing kan zijn?

Alvast bedankt.

[ Voor 4% gewijzigd door Verwijderd op 27-05-2005 13:59 ]


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

In Content-Disposition moet de filename tussen quotes om het browser-portable te houden. Ik snap overigens verder geen bal van je probleem: hoe output je uberhaupt de data behorende bij die headers?

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 24-07 21:14

WPN

wat voor foutmeldingen krijg je te zien

welke versie van php

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
curry684 schreef op vrijdag 27 mei 2005 @ 14:00:
In Content-Disposition moet de filename tussen quotes om het browser-portable te houden. Ik snap overigens verder geen bal van je probleem: hoe output je uberhaupt de data behorende bij die headers?
Het probleem is dat de html tabel naar excel geëxporteerd moet worden, maar dat dit niet gebeurd. De tabel wordt op het scherm weergegeven ipv naar excel geëporteerd.
De tabel op zich is wel juist. Het toevoegen van die quotes maakt geen verschil.

Maar goed ik heb de headers letterlijk gekopieerd uit een script dat wel werkt. Daarom denk ik dat het aan de server ligt. Maar de vraag is welke instelling hiervoor verantwoordelijk is. Of dat iemand me kan zeggen waar het aan ligt.

[ Voor 70% gewijzigd door Verwijderd op 27-05-2005 15:12 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Peluso schreef op vrijdag 27 mei 2005 @ 14:09:
wat voor foutmeldingen krijg je te zien

welke versie van php
De PHP versie waarop het niet werkt is: PHP Version 4.3.10
De PHP-versie waarop het wel werkt, weet ik zo niet.

Ik krijg geen foutmeldingen te zien.

De output die in het excel bestand gegenereerd wordt, is gewoon een html-tabel met inhoud.
Die wordt door middel van een simpel php-scriptje gegenereerd.

Maar het probleem is dat deze tabel op het scherm wordt afgebeeld, terwijl hij met die headers naar excel geexporteerd zou moeten worden.

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

C#:
1
2
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename="+strfilename);

Weliswaar c#, maar op deze manier heeft het altijd gewerkt. Dus: haal je eerste declaratie eens weg?

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TeeDee schreef op vrijdag 27 mei 2005 @ 15:19:
C#:
1
2
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename="+strfilename);

Weliswaar c#, maar op deze manier heeft het altijd gewerkt. Dus: haal je eerste declaratie eens weg?
Dat had ik al geprobeerd. Maar bij mijn andere scripts werkt het gewoon met die regel wel er bij.
Niet dat dat een reden is om em nu weg te halen.
Zojuist nog een keer voor de zekerheid geprobeerd, maar werkt dus ook niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb nog even opgezocht op welke server het wel draaide.
Op 1 van die servers is de php-versie: PHP Version 4.0.3pl1

Zijn er veranderingen in de nieuwere versies waardoor het zou kunnen dat dit niet meer werkt?

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
In de eerste plaats, die headers exporteren helemaal niets naar Excel. Het enig wat je er mee doet is HTML sturen aan een programma dat bij de client verantwoordelijk is voor het afhandelen van XLS files. Imho ontzettend ranzig, je weet namelijk nooit van te voren met welk programma dat gaat gebeuren want niet iedereen heeft Microsoft Office. Om spreadsheetdata te versturen kun je beter het Comma Seperated Value formaat (CSV) gebruiken.

Afgezien daarvan denk ik dat je output stuurt voor je headers, een simpele spatie of enter voor je openingstag is al output en zorgt ervoor dat je headers niet verstuurd worden. Een handige tip is om je Error-reporting op "E_ALL" te zetten. Dan krijg je altijd alle waarschuwingen en fouten te zien, waarschijnlijk had je dit probleem dan zelf ook op kunnen lossen...

Regeren is vooruitschuiven

Pagina: 1