Retrieve info about sheet visibility

This commit is contained in:
alexisparron 2017-07-04 11:45:00 +02:00
parent 40b4a57e6b
commit d68a829e1f
2 changed files with 17 additions and 1 deletions

View File

@ -27,6 +27,7 @@ class SheetHelper
const XML_ATTRIBUTE_ACTIVE_TAB = 'activeTab';
const XML_ATTRIBUTE_R_ID = 'r:id';
const XML_ATTRIBUTE_NAME = 'name';
const XML_ATTRIBUTE_STATUS = 'status';
const XML_ATTRIBUTE_ID = 'Id';
const XML_ATTRIBUTE_TARGET = 'Target';
@ -105,10 +106,12 @@ class SheetHelper
{
$sheetId = $xmlReaderOnSheetNode->getAttribute(self::XML_ATTRIBUTE_R_ID);
$escapedSheetName = $xmlReaderOnSheetNode->getAttribute(self::XML_ATTRIBUTE_NAME);
$sheetStatus = $xmlReaderOnSheetNode->getAttribute(self::XML_ATTRIBUTE_STATUS);
/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */
$escaper = \Box\Spout\Common\Escaper\XLSX::getInstance();
$sheetName = $escaper->unescape($escapedSheetName);
$sheetVisible = ($sheetStatus == 'visible') ? true : false;
$sheetDataXMLFilePath = $this->getSheetDataXMLFilePathForSheetId($sheetId);

View File

@ -24,6 +24,9 @@ class Sheet implements SheetInterface
/** @var bool Whether the sheet was the active one */
protected $isActive;
/** @var bool Whether the sheet was visible or not */
protected $isVisible;
/**
* @param string $filePath Path of the XLSX file being read
* @param string $sheetDataXMLFilePath Path of the sheet data XML file as in [Content_Types].xml
@ -33,12 +36,13 @@ class Sheet implements SheetInterface
* @param \Box\Spout\Reader\XLSX\ReaderOptions $options Reader's current options
* @param Helper\SharedStringsHelper Helper to work with shared strings
*/
public function __construct($filePath, $sheetDataXMLFilePath, $sheetIndex, $sheetName, $isSheetActive, $options, $sharedStringsHelper)
public function __construct($filePath, $sheetDataXMLFilePath, $sheetIndex, $sheetName, $isSheetActive, $isSheetVisible, $options, $sharedStringsHelper)
{
$this->rowIterator = new RowIterator($filePath, $sheetDataXMLFilePath, $options, $sharedStringsHelper);
$this->index = $sheetIndex;
$this->name = $sheetName;
$this->isActive = $isSheetActive;
$this->isVisible = $isSheetVisible;
}
/**
@ -76,4 +80,13 @@ class Sheet implements SheetInterface
{
return $this->isActive;
}
/**
* @api
* @return bool Whether the sheet was visible or not
*/
public function isVisible()
{
return $this->isVisible;
}
}