WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Generera xls på servern (https://www.wn.se/forum/showthread.php?t=1043988)

martine 2010-09-24 15:03

Generera xls på servern
 
Jag genererar en lista för Excel med php som förvisso fungerar fint att öppna med Excel men den ger alltid en varning. Documentet är någon form av ms-xml:
Kod:

<?xml version="1.0" encoding="utf-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:ex
cel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="EnLista">
<Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="891">
<Row>
<Cell><Data ss:Type="String">Rubrik</Data></Cell>
...

Uppenbarligen är detta inte helt rätt format. Eller så behöver filen zippas (nya Office zippar visst sina filer).

Någon som har en aning om vad som skulle kunna vara problemet?

AndreasS 2010-09-24 15:48

Jag törs inte säga vad som kan vara fel då jag inte skapat excel-filer själv, men vilken varning ger dem när de öppnas? Det kan ju vara relaterat till vad som är felet.

Anders Karlsson 2010-09-25 11:00

Annars om csv är ok så är det ju betydligt enklare att jobba med och excel klarar fint att läsa in dessa filer.

dAEk 2010-09-25 11:18

Efter en snabb sökning hittade jag den här länken som du nog kan ha nytta av: http://blogs.msdn.com/b/vsofficedeve...n-warning.aspx

I kort: det verkar som att det är en feature.

martine 2010-09-30 14:14

Citat:

Ursprungligen postat av dAEk (Inlägg 20370860)
Efter en snabb sökning hittade jag den här länken som du nog kan ha nytta av: http://blogs.msdn.com/b/vsofficedeve...n-warning.aspx

I kort: det verkar som att det är en feature.

Tackar för länken. Jo, det verkar som du har rätt.

Att använda:
Kod:

Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Disposition: Attachment; filename=blabla.xlsx

(vilket rekommenderades) hjälpte inte.

Märkligt. Om nu någon upptäcker en xls-fil som går att ladda ner utan varning så skulle jag gärna höra mer om det.

Osueco: Det är sällan man själv får välja det format man önskar ;-)

hnn 2010-09-30 14:53

martine: PHP?

http://www.codeplex.com/PHPExcel/

Den har stöd för Office 2007, 2003 och 97. Samt tab-, semicolon-, komma-separerade exporter. (plus lite till)

martine 2010-10-01 10:00

Citat:

Ursprungligen postat av hnn (Inlägg 20371434)
martine: PHP?

http://www.codeplex.com/PHPExcel/

Den har stöd för Office 2007, 2003 och 97. Samt tab-, semicolon-, komma-separerade exporter. (plus lite till)

hmm, intressant. Men frågan är om det löser just det problem jag har - i så fall behöver jag ju inte hela paketet utan bara lösningen.

För kommande projekt kan de vara intressant dock.

Alex 2010-10-02 01:10

Sist jag behövde generera en excelfil på servern så skapade jag en html-tabell, satte content-type till application/xls och sparade som .xls. Inga varningar, och allt fungerade klockrent.

studiox 2010-10-05 23:12

Citat:

Ursprungligen postat av hnn (Inlägg 20371434)
martine: PHP?

http://www.codeplex.com/PHPExcel/

Den har stöd för Office 2007, 2003 och 97. Samt tab-, semicolon-, komma-separerade exporter. (plus lite till)

Finns en enklare som jag använder som genererar riktiga xls filer (inte xlsx)
http://pear.php.net/package/Spreadsh...ter/redirected

martine 2010-10-06 13:51

Citat:

Ursprungligen postat av Alex (Inlägg 20371681)
Sist jag behövde generera en excelfil på servern så skapade jag en html-tabell, satte content-type till application/xls och sparade som .xls. Inga varningar, och allt fungerade klockrent.

Kunde man väl ana, sätt fel filändelse, använd en felaktig content-type och spara det hela i fel format - då fungerar det. Nåväl, vad kan man vänta sig av ett företag vars mest säljande produkt är fönster som man inte kan se ut igenom...

Tack för alla inlägg för övrigt.

studiox 2010-10-06 21:22

Citat:

Ursprungligen postat av martine (Inlägg 20372282)
Kunde man väl ana, sätt fel filändelse, använd en felaktig content-type och spara det hela i fel format - då fungerar det. Nåväl, vad kan man vänta sig av ett företag vars mest säljande produkt är fönster som man inte kan se ut igenom...

Tack för alla inlägg för övrigt.

Nu är det väl så att det ändå är Microsoft som själva bestämmer hur xls ska tolkas?

Jag kan skapa en filformatsändelse som heter .bajs och som tar .xml och .bat om jag vill. Dessutom är det fullt supportat av MS och så "tyvärr" många websajter gör när dom byggt en "spara till excel" funktion.

En stor nackdel dock är att det fungerar skituselt om man råkar sitta på Mac versionen av excel (om man nu bryr sig)

martine 2010-10-07 14:06

Citat:

Ursprungligen postat av studiox (Inlägg 20372367)
Nu är det väl så att det ändå är Microsoft som själva bestämmer hur xls ska tolkas?

Nu var det väl ändå så att du sa att du satt ihop ett html-dokument och inte xls, men för Excel går det visst på ett ut.

Nog är det så att MS anser sig bestämma över mycket men såvitt jag vet så bestämmer de varken över html eller mime (eller någon annan rfc för den delen) även om de tycker om att deras (oftast ganska galna) tolkning och rendering av allt från http till JavaScript är bra (även om de för all del blivit bättre med tiden).

Vad hade du tänkt dina .bajs-filer ska innehålla? ;-)

Westman 2010-10-07 14:54

Citat:

Ursprungligen postat av studiox (Inlägg 20372180)
Finns en enklare som jag använder som genererar riktiga xls filer (inte xlsx)
http://pear.php.net/package/Spreadsh...ter/redirected

Är det inte den som genererar binära excelfiler enligt gammal standard som JET inte klarar av att läsa, som har begränsningar i antal rader etc.?

studiox 2010-10-11 14:46

Citat:

Ursprungligen postat av Westman (Inlägg 20372440)
Är det inte den som genererar binära excelfiler enligt gammal standard som JET inte klarar av att läsa, som har begränsningar i antal rader etc.?

och med det vill du säga...?


Alla tider är GMT +2. Klockan är nu 15:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson