read xlsx file using php [closed]
Asked Answered
M

2

5

Can anyone reccomend a good library for reading xlsx files using php?

ive looked at phpexcel, but from the examples it seems it only supports writing?

Malliemallin answered 15/7, 2010 at 3:9 Comment(0)
G
12

I'd look at PHPExcel again. PHPExcel has writers for Excel5 (xls), Excel2007 (xlsx), CSV, HTML, and PDF; and readers for Excel5 (xls), Excel2007 (xlsx), Excel 2003 XML, CSV, SYLK, and Open Office Calc

It's all quite clear in the documentation

EDIT (quoting from the manual)

There are 2 methods for reading in a file into PHPExcel: using automatic file type resolving or explicitly.

Automatic file type resolving checks the different PHPExcel_Reader_IReader distributed with PHPExcel. If one of them can load the specified file name, the file is loaded using that PHPExcel_Reader_IReader. Explicit mode requires you to specify which PHPExcel_Reader_IReader should be used.

You can create a PHPExcel_Reader_IReader instance using PHPExcel_IOFactory in automatic file type resolving mode using the following code sample:

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

A typical use of this feature is when you need to read files uploaded by your users, and you don’t know whether they are uploading xls or xlsx files.

If you need to set some properties on the reader, (e.g. to only read data, see more about this later), then you may instead want to use this variant:

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

You can create a PHPExcel_Reader_IReader instance using PHPExcel_IOFactory in explicit mode using the following code sample:

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

EDIT (Personal preference)

It's also worthwhile wrapping your loader in a try/catch

$fileName = '01simple.xlsx';
try {
    $objPHPExcel = PHPExcel_IOFactory::load($fileName);
} catch (Exception $e) {
    die("Error loading file: ".$e->getMessage()."<br />\n");
}
Gavra answered 15/7, 2010 at 7:35 Comment(2)
want to send me a link to the actual part in the docu? as i find thier docu quite hard to locate anything... cheers.Malliemallin
Take a look at Section 6 of the Developer Documentation, entitled "Reading and writing to file", specifically subsection 6.1.1 entitled "Creating PHPExcel_Reader_IReader using PHPExcel_IOFactory" has examples of reading xlsx files.Gavra
L
1

It depends on what you mean by "read."

Office XML files are just zip files containing one or more XML documents. Any old XML parser should be able to read them.

Doing something useful, interesting and productive with the data, on the other hand, may take some effort.

Largo answered 15/7, 2010 at 3:53 Comment(1)
if(xls == xml) echo 'ohh...'; else echo 'hmm...';Malliemallin

© 2022 - 2024 — McMap. All rights reserved.