2010-08-20 37 views
2

我需要在.xls文件中保存一些數據。我正在嘗試使用PEAR庫Spreadsheet_Excel_Writer。這是工作。但現在我正在與沒有PEAR的託管工作。因爲,這是非常可怕的。PHP Excel,但沒有Spreadsheet_Excel_Writer

Spreadsheet_Excel_Writer有很多依賴關係。我需要一個模塊或代碼,我可以將其包含在我的腳本中。

Thx。

回答

4

我用電子表格作家很多,這是不錯的,但如果你不需要多張紙或做一些格式的能力,等等​​,您始終只輸出HTML和發送

header("Content-type: application/vnd.ms-excel") 

和「.xls」的擴展名,然後Excel或OpenOffice的電子表格程序(以及我假設的Mac電子表格程序)將打開它並將HTML格式化爲電子表格。

這不是一個本地解決方案,但最終,它對最終用戶來說看起來相當不錯。你必須在你的html中使用表格,但你可以添加顏色/邊框,填充,字體更改,rowspan,colspan等來進行一些控制。雖然沒有功能或公式或多張表。

3

從字面上看,PHPExcel:http://phpexcel.codeplex.com/

+0

他需要一個php_zip php_gd和php 5.2。我的客戶託管沒有這個東西。和PHP 5.16。糟糕的託管! – pltvs 2010-08-20 08:40:00

+0

@ Alexander.Plutov:PHP 5.1.6?我感到你的痛苦。祝你好運與搜索... – Piskvor 2010-08-20 08:50:02

+0

是的。我發現它.http://dustweb.ru/log/2008/08/01/write_excel_php/ – pltvs 2010-08-20 09:23:53

4

這是從來沒有真正抓住了一個鮮爲人知的格式,但微軟Office有所謂的Excel 2003中的XML文件的支持 - 這確實是XML,並且在最低限度,是這樣的:

<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> 
    <Worksheet> 
    <Row> 
     <Cell> 
     <Data ss:Type="String">First</Data> 
     </Cell> 
    </Row> 
    </Worksheet> 
</Workbook> 

您可以生成這個很簡單,沒有任何PHP擴展,它會在MS Excel的任何版本的正確打開自2003年以來的OpenOffice 2和3將正確地打開這些如果重命名文件擴展名到.xls.xml

當用戶打開此文件並將其保存在Excel中時,默認情況下它將轉換爲傳統的XLS文件。

作爲@ Alexander.Plutov在評論中指出,有a library for writing these files

有一個有用的(和更全面)頁面上IBM的網站關於這個格式和PHP:使用 http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/

http://www.ibm.com/developerworks/opensource/library/os-phpexcel/#N101F7

+0

我想知道這個答案應該是錯誤的;我已經多次成功地以這種方式使用Excel 2003 XML格式,並且它工作正常。謹慎評論? – Piskvor 2010-08-20 09:29:00

+0

我沒有downvote,但我懷疑它可能是使用字符串連接來建立一個XML文件,而不是XMLWriter或類似的 – 2010-08-20 09:46:51

+0

@Mark Ba​​ker:可以。我提到要證明,在極端情況下,沒有庫是絕對必需的(必須在受約束的環境中這樣做;但我同意在大多數情況下使用XMLWriter來編寫XML是有意義的)。編輯出來。 – Piskvor 2010-08-20 09:52:17

3

林我把它簡單地包括在許多項目和它的工作原理就像一個魅力。

1

當心,由Piskvor提供的源代碼:

<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> 
    <Worksheet> 
    <Row> 
     <Cell> 
     <Data ss:Type="String">First</Data> 
     </Cell> 
    </Row> 
    </Worksheet> 
</Workbook> 

是不是一個有效的Excel文件(至少在我的版本 - Excel 2010中),並會失敗打開生成錯誤消息,因爲它是缺席兩場需要在下面的例子中修正值(缺少的部分是一個WorkSheet內你需要一個TableWorkSheet必須指定爲ss:Name字符串名稱):

<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> 
    <Worksheet ss:Name="test"> 
    <Table> 
     <Row> 
     <Cell> 
      <Data ss:Type="String">First</Data> 
     </Cell> 
     </Row> 
    </Table> 
    </Worksheet> 
</Workbook> 

這件T母雞確實成爲了一個有效的excel電子表格,並且感謝Piskvor提醒我們這個美妙的開放式,機器和人類可讀的格式。

相關問題