Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4384 > unrolled thread
| Started by | Jörg Burzeja <No_Spam_burzeja@gmx.de> |
|---|---|
| First post | 2018-07-10 19:24 +0200 |
| Last post | 2018-07-18 15:26 +0000 |
| Articles | 20 — 6 participants |
Back to article view | Back to de.comp.lang.php
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
| From | Jörg Burzeja <No_Spam_burzeja@gmx.de> |
|---|---|
| Date | 2018-07-10 19:24 +0200 |
| Subject | HTTP 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]
| From | k@rl.pflaesterer.de (Karl Pflästerer) |
|---|---|
| Date | 2018-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]
| From | Jörg Burzeja <No_Spam_burzeja@gmx.de> |
|---|---|
| Date | 2018-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]
| From | k@rl.pflaesterer.de (Karl Pflästerer) |
|---|---|
| Date | 2018-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]
| From | Jörg Burzeja <No_Spam_burzeja@gmx.de> |
|---|---|
| Date | 2018-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]
| From | k@rl.pflaesterer.de (Karl Pflästerer) |
|---|---|
| Date | 2018-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]
| From | "Christoph M. Becker" <cmbecker69@arcor.de> |
|---|---|
| Date | 2018-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]
| From | Jörg Burzeja <No_Spam_burzeja@gmx.de> |
|---|---|
| Date | 2018-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]
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Date | 2018-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]
| From | Jörg Burzeja <No_Spam_burzeja@gmx.de> |
|---|---|
| Date | 2018-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]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2018-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]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2018-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]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2018-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]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2018-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]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2018-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]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2018-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]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2018-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]
| From | Jörg Burzeja <No_Spam_burzeja@gmx.de> |
|---|---|
| Date | 2018-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]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2018-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]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2018-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}="{t}ja{/t}",0{foreach $specsheet->getColumns()|sort as $column}+ROUND(RC{$cols.firstcolumn+2*$column@index},{$specsheet->getDefaultDecimals()}){/foreach},"")">
<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