Der Martin: CSV an Excel ausliefern

Beitrag lesen

Hi,

auf Anforderung im Browser sende ich eine CSV-Datei, die direkt mit einem Kalkulationsprogramm geöffnet oder abgespeichert werden kann.

der "richtige" Content-Type für Excel-Dokumente ist meiner Recherche nach application/vnd.ms-excel, gilt aber für echte Excel-Daten. Der von dir verwendete Typ application/msexcel ist AFAIK ein Überbleibsel aus uralten Zeiten. Für CSV-Daten sollte aber nach mehrheitlich vorherrschender Meinung text/csv verwendet werden.
Und das ist für dich auch eine gute Idee, denn nur für die Typen text/* ist die Angabe einer Codierung hintendran vorgesehen.

// Passenden Datentyp erzeugen.
    header("Content-Type: application/octet-stream");
//  header('Content-Type: application/msexcel; Charset=utf-8');
    header('Content-Type: application/msexcel; Charset=iso-8859-1');
    header("Content-Disposition: attachment; filename="$csv_filename"");

Hat es einen Grund, dass du den Content-Type-Header erst auf application/octet-stream setzt, und ihn dann nochmal überschrieben willst? Ich bin mir im Moment nicht sicher, ob dann der zuerst gesetzte gewinnt oder der zuletzt gesetzte. Aber das könnte man ja leicht feststellen, indem man mal nachschaut, welcher beim Client ankommt.

Ciao,
 Martin

--
Niemand ist überflüssig: Er kann immer noch als schlechtes Beispiel dienen.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(