This repository has been archived by the owner on May 26, 2022. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Expose Sheet::isActive() to provide info about the last active sheet (#…
…405)
- Loading branch information
Showing
13 changed files
with
231 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
<?php | ||
|
||
namespace Box\Spout\Reader\ODS\Helper; | ||
|
||
use Box\Spout\Reader\Exception\XMLProcessingException; | ||
use Box\Spout\Reader\Wrapper\XMLReader; | ||
|
||
/** | ||
* Class SettingsHelper | ||
* This class provides helper functions to extract data from the "settings.xml" file. | ||
* | ||
* @package Box\Spout\Reader\ODS\Helper | ||
*/ | ||
class SettingsHelper | ||
{ | ||
const SETTINGS_XML_FILE_PATH = 'settings.xml'; | ||
|
||
/** Definition of XML nodes name and attribute used to parse settings data */ | ||
const XML_NODE_CONFIG_ITEM = 'config:config-item'; | ||
const XML_ATTRIBUTE_CONFIG_NAME = 'config:name'; | ||
const XML_ATTRIBUTE_VALUE_ACTIVE_TABLE = 'ActiveTable'; | ||
|
||
/** | ||
* @param string $filePath Path of the file to be read | ||
* @return string|null Name of the sheet that was defined as active or NULL if none found | ||
*/ | ||
public function getActiveSheetName($filePath) | ||
{ | ||
$xmlReader = new XMLReader(); | ||
if ($xmlReader->openFileInZip($filePath, self::SETTINGS_XML_FILE_PATH) === false) { | ||
return null; | ||
} | ||
|
||
$activeSheetName = null; | ||
|
||
try { | ||
while ($xmlReader->readUntilNodeFound(self::XML_NODE_CONFIG_ITEM)) { | ||
if ($xmlReader->getAttribute(self::XML_ATTRIBUTE_CONFIG_NAME) === self::XML_ATTRIBUTE_VALUE_ACTIVE_TABLE) { | ||
$activeSheetName = $xmlReader->readString(); | ||
break; | ||
} | ||
} | ||
} catch (XMLProcessingException $exception) { | ||
// do nothing | ||
} | ||
|
||
$xmlReader->close(); | ||
|
||
return $activeSheetName; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
<?php | ||
|
||
namespace Box\Spout\Reader\CSV; | ||
|
||
use Box\Spout\Common\Type; | ||
use Box\Spout\Reader\ReaderFactory; | ||
use Box\Spout\TestUsingResource; | ||
|
||
/** | ||
* Class SheetTest | ||
* | ||
* @package Box\Spout\Reader\CSV | ||
*/ | ||
class SheetTest extends \PHPUnit_Framework_TestCase | ||
{ | ||
use TestUsingResource; | ||
|
||
/** | ||
* @return void | ||
*/ | ||
public function testReaderShouldReturnCorrectSheetInfos() | ||
{ | ||
$sheet = $this->openFileAndReturnSheet('csv_standard.csv'); | ||
|
||
$this->assertEquals('', $sheet->getName()); | ||
$this->assertEquals(0, $sheet->getIndex()); | ||
$this->assertTrue($sheet->isActive()); | ||
} | ||
|
||
/** | ||
* @param string $fileName | ||
* @return Sheet | ||
*/ | ||
private function openFileAndReturnSheet($fileName) | ||
{ | ||
$resourcePath = $this->getResourcePath($fileName); | ||
$reader = ReaderFactory::create(Type::CSV); | ||
$reader->open($resourcePath); | ||
|
||
$sheet = $reader->getSheetIterator()->current(); | ||
|
||
$reader->close(); | ||
|
||
return $sheet; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.