使用php读取xlsx文件

时间:2010-07-15 03:09:21

标签: php import-from-excel

有人能推荐一个好的库来使用php读取xlsx文件吗?

我看过phpexcel,但从例子看它似乎只支持写作?

2 个答案:

答案 0 :(得分:11)

我再次看看PHPExcel。 PHPExcel拥有Excel5(xls),Excel2007(xlsx),CSV,HTML和PDF的编写器;读者和Excel5(xls),Excel2007(xlsx),Excel 2003 XML,CSV,SYLK和Open Office Calc

文档中的内容非常清楚

编辑(引自手册)

有两种方法可以将文件读入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");

您可以使用以下代码示例在显式模式下使用PHPExcel_IOFactory创建PHPExcel_Reader_IReader实例:

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

编辑(个人喜好)

在try / catch

中包装你的加载器也是值得的
$fileName = '01simple.xlsx';
try {
    $objPHPExcel = PHPExcel_IOFactory::load($fileName);
} catch (Exception $e) {
    die("Error loading file: ".$e->getMessage()."<br />\n");
}

答案 1 :(得分:1)

这取决于你所说的“读”。

Office XML文件只是包含一个或多个XML文档的zip文件。任何旧的XML解析器都应该能够读取它们。

另一方面,使用数据做一些有用,有趣和富有成效的事情可能需要一些努力。