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

View File

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