12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- /**
- * Utility class to access OpenDocument spreadsheets read-only
- *
- * Requires PHP 5.2
- *
- * @version $Id: Calc_Reader.php,v 1.3 2007-08-06 16:32:48 marand Exp $
- * @license CeCILL 2.0
- * @copyright 2005-2006 Ouest Systemes Informatiques
- */
- $erCalc_Reader = error_reporting(E_ALL | E_STRICT);
- /**
- * Utility class to access OpenDocument spreadsheets read-only
- */
- class Calc_Reader
- {
- const NS_TABLE = "urn:oasis:names:tc:opendocument:xmlns:table:1.0";
- const NS_OFFICE = "urn:oasis:names:tc:opendocument:xmlns:office:1.0";
-
- /**
- * @var DOMDocument $xml
- */
- public $xml;
-
- /**
- * @var DOMXPath $xpath
- */
- public $xpath;
-
- function __construct($path)
- {
- $this->xml = new DOMDocument();
- $this->xml->preserveWhiteSpace = FALSE;
- $this->xml->load($path);
- $this->xpath = new DOMXPath($this->xml);
- $this->xpath->registerNameSpace('office', Calc_Reader::NS_OFFICE);
- $this->xpath->registerNameSpace('table', Calc_Reader::NS_TABLE);
- }
- /**
- * Return the rows in the spreadsheet as a DOMNodeList
- * WARNING: this means ALL the rows, in all the sheets, not just the first sheet
- *
- * @param string $namedRange Optional name of range, notably Sheet name
- * @return DOMNodeList
- */
- function getRows ($namedRange = NULL)
- {
- $query = empty($namedRange)
- ? '//table:table-row'
- : '//table:table[@table:name="' . $namedRange . '"]/table:table-row';
- $ret = $this->xpath->query($query);
- unset($query);
- return $ret;
- }
- }
- error_reporting($erCalc_Reader);
- unset ($erCalc_Reader);
|