2010-07-15 88 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