2010-07-15 103 views
4

任何人都可以推薦一個很好的圖書館閱讀使用PHP的xlsx文件?使用php閱讀xlsx文件

我查看了phpexcel,但從例子中看來它只支持寫入?

回答

11

我會再次看看PHPExcel。 PHPExcel擁有針對Excel5(xls),Excel2007(xlsx),CSV,HTML和PDF的編寫器;和讀者Excel5(XLS),Excel2007中(XLSX),Excel 2003中的XML,CSV,SYLK,和Open Office Calc的

它的文檔

編輯(從手動引用)在心裏都很清楚

有2種方法可以將文件讀入PHPExcel:使用自動文件類型解析或顯式。

自動文件類型解析檢查使用PHPExcel分發的不同PHPExcel_Reader_IReader。如果其中一個可以加載指定的文件名,則使用該PHPExcel_Reader_IReader加載該文件。顯式模式要求您指定應使用哪個PHPExcel_Reader_IReader。

您可以使用下面的代碼示例中的自動文件類型的解決方式使用PHPExcel_IOFactory一個PHPExcel_Reader_IReader實例:

$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx"); 

一個典型的利用這一特點的是,當你需要讀取你的用戶上傳的文件,你不知道他們是否正在上傳xls或xlsx文件。

如果您需要設置對讀者的一些屬性(如只讀的數據,看到更多的關於這個版本),那麼你可能反而想用這個變種:

$objReader = PHPExcel_IOFactory::createReaderForFile("05featuredemo.xlsx"); 
$objReader->setReadDataOnly(true); 
$objReader->load("05featuredemo.xlsx"); 

您可以創建一個

$objReader = PHPExcel_IOFactory::createReader("Excel2007"); 
$objPHPExcel = $objReader->load("05featuredemo.xlsx"); 

EDIT(個人偏好)

:使用下面的代碼樣品中顯式模式中使用PHPExcel_IOFactory PHPExcel_Reader_IReader實例

這也是值得在一個try/catch

$fileName = '01simple.xlsx'; 
try { 
    $objPHPExcel = PHPExcel_IOFactory::load($fileName); 
} catch (Exception $e) { 
    die("Error loading file: ".$e->getMessage()."<br />\n"); 
} 
+0

想給我一個鏈接到文件中的實際部分?因爲我發現他們很難找到任何東西... 歡呼聲。 – Hailwood 2010-07-15 07:49:02

+0

請參閱開發人員文檔的第6部分,標題爲「讀取和寫入文件」,尤其是第6.1小節。1標題爲「使用PHPExcel_IOFactory創建PHPExcel_Reader_IReader」有讀取xlsx文件的示例。 – 2010-07-15 08:19:37

1

這取決於你的意思是「讀」。

Office XML文件只是包含一個或多個XML文檔的zip文件。任何舊的XML解析器都應該能夠讀取它們的

另一方面,對數據做一些有用,有趣且富有成效的事情可能需要一些努力。

+0

如果(XLS == XML) 回聲 '喔......' 包裹你的裝載機; else echo'嗯...'; – Hailwood 2010-07-15 05:05:17

+0

XLS!= XML。 XSLX == XML。 – Charles 2010-07-15 14:10:59