我需要在.xls文件中保存一些數據。我正在嘗試使用PEAR庫Spreadsheet_Excel_Writer。這是工作。但現在我正在與沒有PEAR的託管工作。因爲,這是非常可怕的。PHP Excel,但沒有Spreadsheet_Excel_Writer
Spreadsheet_Excel_Writer有很多依賴關係。我需要一個模塊或代碼,我可以將其包含在我的腳本中。
Thx。
我需要在.xls文件中保存一些數據。我正在嘗試使用PEAR庫Spreadsheet_Excel_Writer。這是工作。但現在我正在與沒有PEAR的託管工作。因爲,這是非常可怕的。PHP Excel,但沒有Spreadsheet_Excel_Writer
Spreadsheet_Excel_Writer有很多依賴關係。我需要一個模塊或代碼,我可以將其包含在我的腳本中。
Thx。
我用電子表格作家很多,這是不錯的,但如果你不需要多張紙或做一些格式的能力,等等,您始終只輸出HTML和發送
header("Content-type: application/vnd.ms-excel")
和「.xls」的擴展名,然後Excel或OpenOffice的電子表格程序(以及我假設的Mac電子表格程序)將打開它並將HTML格式化爲電子表格。
這不是一個本地解決方案,但最終,它對最終用戶來說看起來相當不錯。你必須在你的html中使用表格,但你可以添加顏色/邊框,填充,字體更改,rowspan,colspan等來進行一些控制。雖然沒有功能或公式或多張表。
從字面上看,PHPExcel:http://phpexcel.codeplex.com/
這是從來沒有真正抓住了一個鮮爲人知的格式,但微軟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
我想知道這個答案應該是錯誤的;我已經多次成功地以這種方式使用Excel 2003 XML格式,並且它工作正常。謹慎評論? – Piskvor 2010-08-20 09:29:00
我沒有downvote,但我懷疑它可能是使用字符串連接來建立一個XML文件,而不是XMLWriter或類似的 – 2010-08-20 09:46:51
@Mark Baker:可以。我提到要證明,在極端情況下,沒有庫是絕對必需的(必須在受約束的環境中這樣做;但我同意在大多數情況下使用XMLWriter來編寫XML是有意義的)。編輯出來。 – Piskvor 2010-08-20 09:52:17
林我把它簡單地包括在許多項目和它的工作原理就像一個魅力。
當心,由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
內你需要一個Table
和WorkSheet
必須指定爲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提醒我們這個美妙的開放式,機器和人類可讀的格式。
他需要一個php_zip php_gd和php 5.2。我的客戶託管沒有這個東西。和PHP 5.16。糟糕的託管! – pltvs 2010-08-20 08:40:00
@ Alexander.Plutov:PHP 5.1.6?我感到你的痛苦。祝你好運與搜索... – Piskvor 2010-08-20 08:50:02
是的。我發現它.http://dustweb.ru/log/2008/08/01/write_excel_php/ – pltvs 2010-08-20 09:23:53