Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4384 > unrolled thread

HTTP Content Streaming

Started byJörg Burzeja <No_Spam_burzeja@gmx.de>
First post2018-07-10 19:24 +0200
Last post2018-07-18 15:26 +0000
Articles 20 — 6 participants

Back to article view | Back to de.comp.lang.php


Contents

  HTTP Content Streaming Jörg Burzeja <No_Spam_burzeja@gmx.de> - 2018-07-10 19:24 +0200
    Re: HTTP Content Streaming k@rl.pflaesterer.de (Karl Pflästerer) - 2018-07-11 00:07 +0200
      Re: HTTP Content Streaming Jörg Burzeja <No_Spam_burzeja@gmx.de> - 2018-07-11 08:07 +0200
        Re: HTTP Content Streaming k@rl.pflaesterer.de (Karl Pflästerer) - 2018-07-11 12:37 +0200
          Re: HTTP Content Streaming Jörg Burzeja <No_Spam_burzeja@gmx.de> - 2018-07-11 19:56 +0200
            Re: HTTP Content Streaming k@rl.pflaesterer.de (Karl Pflästerer) - 2018-07-11 21:55 +0200
              Re: HTTP Content Streaming "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-07-11 23:32 +0200
                Re: HTTP Content Streaming Jörg Burzeja <No_Spam_burzeja@gmx.de> - 2018-07-12 20:29 +0200
    Re: HTTP Content Streaming Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-07-11 00:28 +0200
      Re: HTTP Content Streaming Jörg Burzeja <No_Spam_burzeja@gmx.de> - 2018-07-11 08:06 +0200
    Re: HTTP Content Streaming Arno Welzel <usenet@arnowelzel.de> - 2018-07-12 20:53 +0200
      Re: HTTP Content Streaming Arno Welzel <usenet@arnowelzel.de> - 2018-07-13 10:21 +0200
        Re: HTTP Content Streaming Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2018-07-13 08:33 +0000
          Re: HTTP Content Streaming Arno Welzel <usenet@arnowelzel.de> - 2018-07-13 23:26 +0200
            Re: HTTP Content Streaming Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2018-07-14 06:12 +0000
              Re: HTTP Content Streaming Arno Welzel <usenet@arnowelzel.de> - 2018-07-15 20:39 +0200
                Re: HTTP Content Streaming Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2018-07-16 05:47 +0000
                  Re: HTTP Content Streaming Jörg Burzeja <No_Spam_burzeja@gmx.de> - 2018-07-16 20:48 +0200
                  Re: HTTP Content Streaming Arno Welzel <usenet@arnowelzel.de> - 2018-07-17 21:21 +0200
                    Re: HTTP Content Streaming Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2018-07-18 15:26 +0000

#4384 — HTTP Content Streaming

FromJörg Burzeja <No_Spam_burzeja@gmx.de>
Date2018-07-10 19:24 +0200
SubjectHTTP Content Streaming
Message-ID<fqk8egF6u5pU1@mid.individual.net>
Hallo und guten Abend,

der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code 
für eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder 
Dateierweiterung ungültig).

Der "Microsoft Office MIME types for HTTP Content Streaming" sollte 
korrekt sein:
https://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc

Hat jemand eine einfache Lösung?

Danke.

// ======================================================
//old code:
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="test.xls"'); 

// ======================================================
//new code:
//header("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 

//header('Content-Disposition: attachment; filename="test.xlsx"');
// ======================================================
echo "<table>
     <thead>
         <tr>
             <th>Column 1</th>
             <th>Column 2</th>
         </tr>
     </thead>
     <tbody>
         <tr>
             <td>Build 5</td>
         </tr>
         <tr>
             <td style='font-size:200%'>Answer 1</td>
             <td style='background-color:#b0ffe0;color:#f00'>Answer 2</td>
         </tr>
         <tr>
             <td colspan='2' style='font-weight:bold'>Answer 3\nwith 2 
columns</td>
         </tr>
     </tbody>
</table>";

?>

[toc] | [next] | [standalone]


#4385

Fromk@rl.pflaesterer.de (Karl Pflästerer)
Date2018-07-11 00:07 +0200
Message-ID<m1r2ka218u.fsf@mbp.pflaesterer.de>
In reply to#4384
Jörg Burzeja <No_Spam_burzeja@gmx.de> writes:

> Hallo und guten Abend,
>
> der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code für
> eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder
> Dateierweiterung ungültig).
>
> Der "Microsoft Office MIME types for HTTP Content Streaming" sollte korrekt
> sein:
> https://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc
>
> Hat jemand eine einfache Lösung?
>
> Danke.
>
> // ======================================================
> //old code:
> header('Content-Type: application/vnd.ms-excel');
> header('Content-Disposition: attachment; filename="test.xls"'); 
>
> // ======================================================
> //new code:
> //header("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 
>
> //header('Content-Disposition: attachment; filename="test.xlsx"');

Wenn das der echte Code ist: Bei header() fehlt "Content-Type:" bei new
code

KP

[toc] | [prev] | [next] | [standalone]


#4388

FromJörg Burzeja <No_Spam_burzeja@gmx.de>
Date2018-07-11 08:07 +0200
Message-ID<fqll4gFei42U2@mid.individual.net>
In reply to#4385
Am 11.07.2018 um 00:07 schrieb Karl Pflästerer:

Hallo Karl,

>> der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code für
>> eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder
>> Dateierweiterung ungültig).
>>
>> Der "Microsoft Office MIME types for HTTP Content Streaming" sollte korrekt
>> sein:
>> https://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc
>>
>> Hat jemand eine einfache Lösung?
>>
>> Danke.
>>
>> // ======================================================
>> //old code:
>> header('Content-Type: application/vnd.ms-excel');
>> header('Content-Disposition: attachment; filename="test.xls"');
>>
>> // ======================================================
>> //new code:
>> //header("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
>>
>> //header('Content-Disposition: attachment; filename="test.xlsx"');
> 
> Wenn das der echte Code ist: Bei header() fehlt "Content-Type:" bei new
> code


Das ist korrekt.

header('Content-Type: 
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

Geht aber leider immer noch nicht.

[toc] | [prev] | [next] | [standalone]


#4389

Fromk@rl.pflaesterer.de (Karl Pflästerer)
Date2018-07-11 12:37 +0200
Message-ID<m1muuy12ju.fsf@mbp.pflaesterer.de>
In reply to#4388
Jörg Burzeja <No_Spam_burzeja@gmx.de> writes:

> Am 11.07.2018 um 00:07 schrieb Karl Pflästerer:
>
> Hallo Karl,
>
>>> der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code für
>>> eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder
>>> Dateierweiterung ungültig).
>>>
>>> Der "Microsoft Office MIME types for HTTP Content Streaming" sollte korrekt
>>> sein:
>>> https://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc
>>>
>>> Hat jemand eine einfache Lösung?
>>>
>>> Danke.
>>>
>>> // ======================================================
>>> //old code:
>>> header('Content-Type: application/vnd.ms-excel');
>>> header('Content-Disposition: attachment; filename="test.xls"');
>>>
>>> // ======================================================
>>> //new code:
>>> //header("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
>>>
>>> //header('Content-Disposition: attachment; filename="test.xlsx"');
>>
>> Wenn das der echte Code ist: Bei header() fehlt "Content-Type:" bei new
>> code
>
>
> Das ist korrekt.
>
> header('Content-Type:
> application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
>
> Geht aber leider immer noch nicht.

Ist die übertragene Datei denn eine gültige xlsx Datei? Excel war in
früheren versionen sehr großzügig und hat auch csv Dateien oder HTML
Dokumente interpretiert.

  KP

[toc] | [prev] | [next] | [standalone]


#4390

FromJörg Burzeja <No_Spam_burzeja@gmx.de>
Date2018-07-11 19:56 +0200
Message-ID<fqmuloFmd1sU1@mid.individual.net>
In reply to#4389
Am 11.07.2018 um 12:37 schrieb Karl Pflästerer:

>>>> der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code für
>>>> eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder
>>>> Dateierweiterung ungültig).
>>>>
>>>> Der "Microsoft Office MIME types for HTTP Content Streaming" sollte korrekt
>>>> sein:
>>>> https://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc
>>>>
>>>> Hat jemand eine einfache Lösung?
>>>>
>>>> Danke.
>>>>
>>>> // ======================================================
>>>> //old code:
>>>> header('Content-Type: application/vnd.ms-excel');
>>>> header('Content-Disposition: attachment; filename="test.xls"');
>>>>
>>>> // ======================================================
>>>> //new code:
>>>> //header("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
>>>>
>>>> //header('Content-Disposition: attachment; filename="test.xlsx"');
>>>
>>> Wenn das der echte Code ist: Bei header() fehlt "Content-Type:" bei new
>>> code
>>
>>
>> Das ist korrekt.
>>
>> header('Content-Type:
>> application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
>>
>> Geht aber leider immer noch nicht.
> 
> Ist die übertragene Datei denn eine gültige xlsx Datei? Excel war in
> früheren versionen sehr großzügig und hat auch csv Dateien oder HTML
> Dokumente interpretiert.

Wenn man den (berichtigten) Codeschnipsel meines Ursprungsposts als 
PHP-Datei speichert und aus einem Projekt öffnet, sieht man mit 'old 
Code', das automatisch eine neue Excel-Datei erstellt und mit dem Inhalt 
der im Code enthaltenen HTML-Tabelle geöffnet wird (ich vermute, das 
meinst Du mit "frühere Excel-Versionen waren in der Interpretation 
großzügig").
Der 'new Code' mit xlsx öffnet zwar ebenfalls eine Excel-Tabelle, zeigt 
dann aber einen Fehler an (Dateiformat oder Dateierweiterung ungültig).

Scheint wohl als einfachste Lösung nicht auszureichen, den geänderten 
mimi-Type im Header zu hinterlegen, oder gibt es doch noch eine Möglichkeit?


[toc] | [prev] | [next] | [standalone]


#4391

Fromk@rl.pflaesterer.de (Karl Pflästerer)
Date2018-07-11 21:55 +0200
Message-ID<m1in5l1r9j.fsf@mbp.pflaesterer.de>
In reply to#4390
Jörg Burzeja <No_Spam_burzeja@gmx.de> writes:

> Am 11.07.2018 um 12:37 schrieb Karl Pflästerer:
>>
>> Ist die übertragene Datei denn eine gültige xlsx Datei? Excel war in
>> früheren versionen sehr großzügig und hat auch csv Dateien oder HTML
>> Dokumente interpretiert.
>
> Wenn man den (berichtigten) Codeschnipsel meines Ursprungsposts als PHP-Datei
> speichert und aus einem Projekt öffnet, sieht man mit 'old Code', das
> automatisch eine neue Excel-Datei erstellt und mit dem Inhalt der im Code
> enthaltenen HTML-Tabelle geöffnet wird (ich vermute, das meinst Du mit
> "frühere Excel-Versionen waren in der Interpretation großzügig").
> Der 'new Code' mit xlsx öffnet zwar ebenfalls eine Excel-Tabelle, zeigt dann
> aber einen Fehler an (Dateiformat oder Dateierweiterung ungültig).
>
> Scheint wohl als einfachste Lösung nicht auszureichen, den geänderten
> mimi-Type im Header zu hinterlegen, oder gibt es doch noch eine Möglichkeit?

Wieso nimmst du denn das neue Format? Excel erwartet ein bestimmtes
Format, du schickst es nicht => Fehler. Man kann gültige Excel
Dokumente mit PHP erzeugen (zB
https://packagist.org/packages/phpoffice/phpspreadsheet ). Ist aber
etwas aufwendiger, als HTML zu senden und darauf zu setzen, dass Excel
dies wie gewollt interpretiert.

  KP

[toc] | [prev] | [next] | [standalone]


#4392

From"Christoph M. Becker" <cmbecker69@arcor.de>
Date2018-07-11 23:32 +0200
Message-ID<pi5t0n$sd8$1@solani.org>
In reply to#4391
Am 11.07.2018 um 21:55 schrieb Karl Pflästerer:

> Wieso nimmst du denn das neue Format? Excel erwartet ein bestimmtes
> Format, du schickst es nicht => Fehler. Man kann gültige Excel
> Dokumente mit PHP erzeugen (zB
> https://packagist.org/packages/phpoffice/phpspreadsheet ). Ist aber
> etwas aufwendiger, als HTML zu senden und darauf zu setzen, dass Excel
> dies wie gewollt interpretiert.

ACK. Eventuell eine interessante Alternative zu PHPSpreadsheet könnte
die PECL-Erweiterung xlswriter darstellen:
<https://pecl.php.net/package/xlswriter>
<http://php.net/manual/en/book.xlswriter.php>

-- 
Christoph M. Becker

[toc] | [prev] | [next] | [standalone]


#4393

FromJörg Burzeja <No_Spam_burzeja@gmx.de>
Date2018-07-12 20:29 +0200
Message-ID<fqpl0nF77hrU1@mid.individual.net>
In reply to#4392
Am 11.07.2018 um 23:32 schrieb Christoph M. Becker:

>> Wieso nimmst du denn das neue Format? Excel erwartet ein bestimmtes
>> Format, du schickst es nicht => Fehler. Man kann gültige Excel
>> Dokumente mit PHP erzeugen (zB
>> https://packagist.org/packages/phpoffice/phpspreadsheet ). Ist aber
>> etwas aufwendiger, als HTML zu senden und darauf zu setzen, dass Excel
>> dies wie gewollt interpretiert.
> 
> ACK. Eventuell eine interessante Alternative zu PHPSpreadsheet könnte
> die PECL-Erweiterung xlswriter darstellen:
> <https://pecl.php.net/package/xlswriter>
> <http://php.net/manual/en/book.xlswriter.php>

Das "aufwendiger" wollte ich zwar vermeiden; aber Danke für die Hinweise.

[toc] | [prev] | [next] | [standalone]


#4386

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2018-07-11 00:28 +0200
Message-ID<5401486.lOV4Wx5bFT@PointedEars.de>
In reply to#4384
Jörg Burzeja wrote:

> der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code
> für eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder
> Dateierweiterung ungültig).

Welches Programm zeigt diese Fehlermeldung an?
 
-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


#4387

FromJörg Burzeja <No_Spam_burzeja@gmx.de>
Date2018-07-11 08:06 +0200
Message-ID<fqll2dFei42U1@mid.individual.net>
In reply to#4386
Am 11.07.2018 um 00:28 schrieb Thomas 'PointedEars' Lahn:

Hallo Thomas,

>> der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code
>> für eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder
>> Dateierweiterung ungültig).
> 
> Welches Programm zeigt diese Fehlermeldung an?

Sorry; hatte ich vergessen zu erwähnen. Excel zeigt die Meldung an.

[toc] | [prev] | [next] | [standalone]


#4394

FromArno Welzel <usenet@arnowelzel.de>
Date2018-07-12 20:53 +0200
Message-ID<fqpmdvF7cb0U6@mid.individual.net>
In reply to#4384
Jörg Burzeja:

> Hallo und guten Abend,
> 
> der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code 
> für eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder 
> Dateierweiterung ungültig).
[...]
> //header('Content-Disposition: attachment; filename="test.xlsx"');
> // ======================================================
> echo "<table>
>      <thead>
>          <tr>
>              <th>Column 1</th>
>              <th>Column 2</th>
>          </tr>
[...]

Das ist aber kein XLSX, sondern HTML.


-- 
Arno Welzel
https://arnowelzel.de
https://de-rec-fahrrad.de
http://fahrradzukunft.de

[toc] | [prev] | [next] | [standalone]


#4395

FromArno Welzel <usenet@arnowelzel.de>
Date2018-07-13 10:21 +0200
Message-ID<fqr5npFfia1U1@mid.individual.net>
In reply to#4394
Arno Welzel:

> Jörg Burzeja:
> 
>> Hallo und guten Abend,
>>
>> der alte Code für eine Ausgabe als XLS-Datei funktioniert; der neue Code 
>> für eine XLSX-Datei zeigt leider einen Fehler an (Dateiformat oder 
>> Dateierweiterung ungültig).
> [...]
>> //header('Content-Disposition: attachment; filename="test.xlsx"');
>> // ======================================================
>> echo "<table>
>>      <thead>
>>          <tr>
>>              <th>Column 1</th>
>>              <th>Column 2</th>
>>          </tr>
> [...]
> 
> Das ist aber kein XLSX, sondern HTML.

Nachtrag - für Excel-Spreadsheets wäre das hier sinnvoll:

<https://github.com/PHPOffice/PhpSpreadsheet>

Das habe ich auch schon eingesetzt und das funktioniert recht problemlos.


-- 
Arno Welzel
https://arnowelzel.de
https://de-rec-fahrrad.de
http://fahrradzukunft.de

[toc] | [prev] | [next] | [standalone]


#4396

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2018-07-13 08:33 +0000
Message-ID<1t5b486344i3e2cn3e8%sfroehli@Froehlich.Priv.at>
In reply to#4395
On Fri, 13 Jul 2018 10:21:13 Arno Welzel wrote:
> > Jörg Burzeja:
> > [...]
> >> //header('Content-Disposition: attachment; filename="test.xlsx"');
> >> // ======================================================
> >> echo "<table>
> >>      <thead>
> >>          <tr>
> >>              <th>Column 1</th>
> >>              <th>Column 2</th>
> >>          </tr>
> > [...]
> 
> Nachtrag - für Excel-Spreadsheets wäre das hier sinnvoll:
> <https://github.com/PHPOffice/PhpSpreadsheet>
> Das habe ich auch schon eingesetzt und das funktioniert recht problemlos.

Zum Lesen ist es großartig, aber zum Schreiben möchte ich
Excel-Sheets in der Regel nicht programmieren, sondern (mehr
oder weniger) per Template zusammenstellen, und das geht dort
halt nicht.

Wobei, wo ich gerade darüber nachdenke: man müsste eigentlich
HTML-Templates einlesen und daraus xlsx generieren können. Muss ich
mir einmal ansehen...

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Das zarte Sehnen, oder warum Stefan so hurtig röchelt!
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#4397

FromArno Welzel <usenet@arnowelzel.de>
Date2018-07-13 23:26 +0200
Message-ID<fqsjnfFo6jdU1@mid.individual.net>
In reply to#4396
Stefan Froehlich:

> On Fri, 13 Jul 2018 10:21:13 Arno Welzel wrote:
[...]
>> Nachtrag - für Excel-Spreadsheets wäre das hier sinnvoll:
>> <https://github.com/PHPOffice/PhpSpreadsheet>
>> Das habe ich auch schon eingesetzt und das funktioniert recht problemlos.
> 
> Zum Lesen ist es großartig, aber zum Schreiben möchte ich
> Excel-Sheets in der Regel nicht programmieren, sondern (mehr
> oder weniger) per Template zusammenstellen, und das geht dort
> halt nicht.
> 
> Wobei, wo ich gerade darüber nachdenke: man müsste eigentlich
> HTML-Templates einlesen und daraus xlsx generieren können. Muss ich
> mir einmal ansehen...

<https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#html>


-- 
Arno Welzel
https://arnowelzel.de
https://de-rec-fahrrad.de
http://fahrradzukunft.de

[toc] | [prev] | [next] | [standalone]


#4398

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2018-07-14 06:12 +0000
Message-ID<1t5b499404id82n3e8%sfroehli@Froehlich.Priv.at>
In reply to#4397
On Fri, 13 Jul 2018 23:26:06 Arno Welzel wrote:
> Stefan Froehlich:
> > [phpspreadsheet]
> > Wobei, wo ich gerade darüber nachdenke: man müsste eigentlich
> > HTML-Templates einlesen und daraus xlsx generieren können. Muss
> > ich mir einmal ansehen...
 
> <https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#html>

Hm:

| Please note that HTML reader is still experimental and does not
| yet support merged cells or nested tables cleanly

Schade, aber danke für den Hinweis, damit erspare ich mir das
Ausprobieren.

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Das wilde Stöhnen zorniger Bengel. Stefan!
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#4399

FromArno Welzel <usenet@arnowelzel.de>
Date2018-07-15 20:39 +0200
Message-ID<fr1indFlpftU1@mid.individual.net>
In reply to#4398
Stefan Froehlich:

> On Fri, 13 Jul 2018 23:26:06 Arno Welzel wrote:
>> Stefan Froehlich:
>>> [phpspreadsheet]
>>> Wobei, wo ich gerade darüber nachdenke: man müsste eigentlich
>>> HTML-Templates einlesen und daraus xlsx generieren können. Muss
>>> ich mir einmal ansehen...
>  
>> <https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#html>
> 
> Hm:
> 
> | Please note that HTML reader is still experimental and does not
> | yet support merged cells or nested tables cleanly
> 
> Schade, aber danke für den Hinweis, damit erspare ich mir das
> Ausprobieren.

Wenn Du keine verbundenen Zellen oder verschachtelte Tabellen hast,
sollte das aber kein Problem sein.

Und soooo aufwendig ist das "manuelle" erzeugen einer Tabelle auch nicht:

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Text erste Spalte');
$sheet->setCellValue('B1', 'Text zweie Spalte');
$sheet->setCellValue('A2', 'Text erste Spalte, Zeile 2');
$sheet->setCellValue('B2', 'Text zweite Spalte, Zeile 2');
$sheet->setSelectedCell('A1');

header('Content-Type: application/'.
    'vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;'.
    'filename="my-file.xlsx"');
header('Cache-Control: max-age=0');

$writer = new Xlsx($spreadsheet);
$writer->save('php://output');

Bei Bedarf kann man auch mit setCellValueExplicit() den Datentyp mit
angeben, wenn man z.B. Datumsangaben oder Zahlen als Text haben will.

-- 
Arno Welzel
https://arnowelzel.de
https://de-rec-fahrrad.de
http://fahrradzukunft.de

[toc] | [prev] | [next] | [standalone]


#4400

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2018-07-16 05:47 +0000
Message-ID<1t5b4c30a4i405en3e8%sfroehli@Froehlich.Priv.at>
In reply to#4399
On Sun, 15 Jul 2018 20:39:41 Arno Welzel wrote:
> Stefan Froehlich:
> > On Fri, 13 Jul 2018 23:26:06 Arno Welzel wrote:
> >> <https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#html>

> > | Please note that HTML reader is still experimental and does not
> > | yet support merged cells or nested tables cleanly
> > 
> > Schade, aber danke für den Hinweis, damit erspare ich mir das
> > Ausprobieren.
> 
> Wenn Du keine verbundenen Zellen oder verschachtelte Tabellen hast,
> sollte das aber kein Problem sein.

Das kommt halt leider in praktisch jeder Tabelle (in den
Tabellenköpfen und in Summenzeilen) vor.

> Und soooo aufwendig ist das "manuelle" erzeugen einer Tabelle auch
> nicht:

Es ist nicht nur eine Frage des Aufwands: Meine Excel-Dateien werden
so gut wie immer kundenspezifisch angepasst, und das ist mit
Template und SpreadsheetML (jedenfalls für mich) deutlich leichter
handhabbar - beispielsweise wenn mittendrin zusätzliche Zeilen
eingefügt werden sollen, geht das:

> $sheet->setCellValue('A1', 'Text erste Spalte');
> $sheet->setCellValue('A2', 'Text erste Spalte, Zeile 2');

...schon nicht mehr ganz so einfach.

Größtes Manko von SpreadsheetML ist, dass prinzipbedingt keine
Grafiken erlaubt sind, weshalb ich mich immer wieder einmal nach
Alternativen umsehe.

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Der endlose Frust grenzenloser Raeder. Stefan!
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#4401

FromJörg Burzeja <No_Spam_burzeja@gmx.de>
Date2018-07-16 20:48 +0200
Message-ID<fr47jpF6jctU1@mid.individual.net>
In reply to#4400
Am 16.07.2018 um 07:47 schrieb Stefan Froehlich:

> Größtes Manko von SpreadsheetML ist, dass prinzipbedingt keine
> Grafiken erlaubt sind, weshalb ich mich immer wieder einmal nach
> Alternativen umsehe.

Ich hatte mich auch nach Alternativen umgesehen; vielleicht ist ja was 
für Dich dabei.


https://tableexport.v3.travismclarke.com/

https://github.com/clarketm/TableExport

https://github.com/hhurz/tableExport.jquery.plugin

[toc] | [prev] | [next] | [standalone]


#4402

FromArno Welzel <usenet@arnowelzel.de>
Date2018-07-17 21:21 +0200
Message-ID<fr6ttsFmaqmU1@mid.individual.net>
In reply to#4400
Stefan Froehlich:

> On Sun, 15 Jul 2018 20:39:41 Arno Welzel wrote:
>> Stefan Froehlich:
>>> On Fri, 13 Jul 2018 23:26:06 Arno Welzel wrote:
>>>> <https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#html>
> 
>>> | Please note that HTML reader is still experimental and does not
>>> | yet support merged cells or nested tables cleanly
>>>
>>> Schade, aber danke für den Hinweis, damit erspare ich mir das
>>> Ausprobieren.
>>
>> Wenn Du keine verbundenen Zellen oder verschachtelte Tabellen hast,
>> sollte das aber kein Problem sein.
> 
> Das kommt halt leider in praktisch jeder Tabelle (in den
> Tabellenköpfen und in Summenzeilen) vor.
> 
>> Und soooo aufwendig ist das "manuelle" erzeugen einer Tabelle auch
>> nicht:
> 
> Es ist nicht nur eine Frage des Aufwands: Meine Excel-Dateien werden
> so gut wie immer kundenspezifisch angepasst, und das ist mit
> Template und SpreadsheetML (jedenfalls für mich) deutlich leichter
[...]

Was spricht gegen Excel-Dateien als Vorlage?

Siehe auch:

<https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#excel-2007-spreadsheetml-file-format>

>> $sheet->setCellValue('A1', 'Text erste Spalte');
>> $sheet->setCellValue('A2', 'Text erste Spalte, Zeile 2');
> 
> ...schon nicht mehr ganz so einfach.
> 
> Größtes Manko von SpreadsheetML ist, dass prinzipbedingt keine
> Grafiken erlaubt sind, weshalb ich mich immer wieder einmal nach
> Alternativen umsehe.

Wieso "prinzipbedingt"?




-- 
Arno Welzel
https://arnowelzel.de
https://de-rec-fahrrad.de
http://fahrradzukunft.de

[toc] | [prev] | [next] | [standalone]


#4403

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2018-07-18 15:26 +0000
Message-ID<7t5b4f56aai6f29n3e8%sfroehli@Froehlich.Priv.at>
In reply to#4402
On Tue, 17 Jul 2018 21:21:30 Arno Welzel wrote:
> Stefan Froehlich:
> > Meine Excel-Dateien werden so gut wie immer kundenspezifisch
> > angepasst, und das ist mit Template und SpreadsheetML
> > (jedenfalls für mich) deutlich leichter [...]
> [...]
> 
> Was spricht gegen Excel-Dateien als Vorlage?
> Siehe auch:
> 
> <https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-and-writing-to-file/#excel-2007-spreadsheetml-file-format>

> > Größtes Manko von SpreadsheetML ist, dass prinzipbedingt keine
> > Grafiken erlaubt sind, weshalb ich mich immer wieder einmal nach
> > Alternativen umsehe.
 
> Wieso "prinzipbedingt"?

Weil SpreadsheetML nun einmal keine Anweisungen dafür bereithält.
Wobei ich eventuell zu unpräise war: Ich meinte das "echte"
SpreadsheetML, also das XML, das Microsoft mit Office2003 in einer
einzigen (unkomprimierten) XML-Datei ausgeliefert hat:
<https://de.wikipedia.org/wiki/SpreadsheetML>.

Das, was PhpSpreadsheet als "SpreadsheetML" bezeichnet, ist ja
bereits eine komplexe ZIP-Datei, die *auch* XML-Dateien enthält. Da
kann ich so grausame Dinge, wie ich sie momentan bei Bedarf mit
Smarty anstelle, nicht machen.  Z.B. auf Kundenwunsch mal eben eine
Summenspalte mit bedingter Formatierung mitten in das fix-fertige
Excel-Sheet einzubauen, ohne an der Software selbst auch nur eine
Zeile zu ändern:

#v+
<ss:Cell ss:StyleID="amount{if $nosum}W{/if}_{$specsheet->getDefaultDecimals()}" ss:Formula="=IF(RC{$cols.offered}=&quot;{t}ja{/t}&quot;,0{foreach $specsheet->getColumns()|sort as $column}+ROUND(RC{$cols.firstcolumn+2*$column@index},{$specsheet->getDefaultDecimals()}){/foreach},&quot;&quot;)">
	<ss:Data ss:Type="Number"></ss:Data>
</ss:Cell>
#v-

Bei einer via PhpSpreadsheet geöffneten Vorlage müsste ich das

Wobei natürlich in Excel2007-Dateien ein sehr ähnlich aufgebautes
XML-File steckt. Ich muss einmal sehen, ob ich es schaffe, dafür ein
Tempalte zu erstellen und das dann mit den Grafik- und Style-Dateien
zusammen in ein XLSX zu verpacken. Das wäre momentan die ultimative
Lösung.

Servus,
   Stefan

PS: Ich lese gerade auf
<https://phpspreadsheet.readthedocs.io/en/develop/references/features-cross-reference/>,
dass Zellenformatierung momentan für Excel noch nicht unterstützt
wird. Damit scheidet das eh aus; zum Lesen ist es aber auch jetzt
schon weitgehend brauchbar, solange das Sheet nicht
TOKEN_SUBTYPE_UNION verwendet, also Dinge wie "=RANK(B1, (C1, D1))";
dass das nicht geht, habe ich auf die harte Tour gelernt.


-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - die grenzenlosste Herausforderung seit der Steinzeit.
(Sloganizer)

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.lang.php


csiph-web