fix: noverify + типы для правил провеки
This commit is contained in:
parent
9680409ba9
commit
90cbd3b2b6
10 changed files with 319 additions and 300 deletions
|
|
@ -1,14 +1,14 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Клетка таблицы
|
||||
* Клетка таблицы
|
||||
*/
|
||||
namespace ctiso\Excel;
|
||||
use XMLWriter,
|
||||
ctiso\Excel\DateTime as Excel_DateTime,
|
||||
ctiso\Excel\Number as Excel_Number;
|
||||
|
||||
class TableCell
|
||||
class TableCell
|
||||
{
|
||||
public $style = false;
|
||||
public $value;
|
||||
|
|
@ -21,27 +21,27 @@ class TableCell
|
|||
}
|
||||
|
||||
/**
|
||||
* Ряд таблицы
|
||||
* Ряд таблицы
|
||||
*/
|
||||
class TableRow
|
||||
{
|
||||
public $style = false;
|
||||
public $cells = array();
|
||||
public $height = false;
|
||||
|
||||
|
||||
function setCell($y, $value)
|
||||
{
|
||||
$this->cells[$y] = new TableCell($value);
|
||||
}
|
||||
|
||||
function setCellStyle($y, $name)
|
||||
|
||||
function setCellStyle($y, $name)
|
||||
{
|
||||
$this->cells[$y]->style = $name;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Таблица
|
||||
* Таблица
|
||||
*/
|
||||
class Table
|
||||
{
|
||||
|
|
@ -59,7 +59,7 @@ class Table
|
|||
}
|
||||
|
||||
/**
|
||||
* Записать значение в клетку с заданными координатами
|
||||
* Записать значение в клетку с заданными координатами
|
||||
*/
|
||||
function setCell($x, $y, $value)
|
||||
{
|
||||
|
|
@ -116,7 +116,7 @@ class Table
|
|||
* Обьединяет клетки в строке
|
||||
* @param $row Номер ряда
|
||||
* @param $cell Номер столбца
|
||||
* @param $merge Количество клеток для обьединения
|
||||
* @param $merge Количество клеток для обьединения
|
||||
*/
|
||||
function setCellMerge($x, $cell, $merge)
|
||||
{
|
||||
|
|
@ -129,9 +129,9 @@ class Table
|
|||
|
||||
/**
|
||||
* Устанавливает стиль для клеток ряда
|
||||
* @param $row integer Номер ряда
|
||||
* @param $y integer Номер столбца
|
||||
* @parma $name string Имя стиля
|
||||
* @param int $row Номер ряда
|
||||
* @param int $y Номер столбца
|
||||
* @param string $name Имя стиля
|
||||
*/
|
||||
function setCellStyle ($row, $y, $name)
|
||||
{
|
||||
|
|
@ -141,41 +141,41 @@ class Table
|
|||
|
||||
/**
|
||||
* Добавляет строку к таблице
|
||||
*/
|
||||
*/
|
||||
function addRow($index = 1, array $data = [""])
|
||||
{
|
||||
assert(is_numeric($index) && $index > 0);
|
||||
$offset = $this->getRows() + 1;
|
||||
|
||||
|
||||
$this->setRow($offset, $index, $data);
|
||||
return $offset;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Количество строк в таблице
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
*/
|
||||
function getRows()
|
||||
{
|
||||
$keys/*: array*/ = array_keys($this->rows);
|
||||
return max($keys);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Количество столбцов в строке
|
||||
*
|
||||
* @return int
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function getRowCells(TableRow $row)
|
||||
{
|
||||
$keys/*: array*/ = array_keys($row->cells);
|
||||
return max($keys);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Разделяет таблицу на две части по вертикали
|
||||
* @param $n integer Количество столбцов слева
|
||||
* @param int $n Количество столбцов слева
|
||||
*/
|
||||
function splitVertical($n) {
|
||||
$this->_splitVertical = $n;
|
||||
|
|
@ -183,7 +183,7 @@ class Table
|
|||
|
||||
/**
|
||||
* Разделяет таблицу на две части по горизонтали
|
||||
* @param $n integer Количество столбцов сверху
|
||||
* @param int $n Количество столбцов сверху
|
||||
*/
|
||||
function splitHorizontal($n) {
|
||||
$this->_splitHorizontal = $n;
|
||||
|
|
@ -192,9 +192,9 @@ class Table
|
|||
|
||||
/**
|
||||
* Количество столбцов в таблице
|
||||
*
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
*/
|
||||
function getColumns() {
|
||||
return max(array_map([$this, 'getRowCells'], $this->rows));
|
||||
}
|
||||
|
|
@ -228,21 +228,21 @@ class Table
|
|||
$doc->text($value->getString());
|
||||
} else if ($value instanceof Excel_Number) {
|
||||
$doc->writeAttribute('ss:Type', "Number");
|
||||
$doc->text($value->getString());
|
||||
$doc->text($value->getString());
|
||||
} else {
|
||||
if (is_string($value)) {
|
||||
$doc->writeAttribute('ss:Type', "String");
|
||||
} else {
|
||||
$doc->writeAttribute('ss:Type', "Number");
|
||||
}
|
||||
$doc->writeCdata($this->encode($value));
|
||||
}
|
||||
$doc->writeCdata($this->encode($value));
|
||||
}
|
||||
$doc->endElement();
|
||||
$doc->endElement();
|
||||
$doc->endElement();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Генерация таблицы
|
||||
* Генерация таблицы
|
||||
*/
|
||||
public function createTable (XMLWriter $doc) {
|
||||
$doc->startElement('Worksheet');
|
||||
|
|
@ -271,19 +271,19 @@ class Table
|
|||
// Флаг индикатор подстановки номера столбца
|
||||
$setIndex = false;
|
||||
for ($j = 1; $j <= $columns; $j++) {
|
||||
|
||||
|
||||
$value = null;
|
||||
if (isset($nrow->cells[$j])) {
|
||||
$value = $nrow->cells[$j]->value;
|
||||
}
|
||||
|
||||
|
||||
if (!empty($value)) {
|
||||
$this->createCell($nrow->cells[$j], $doc, $j, $value, $setIndex);
|
||||
$setIndex = false;
|
||||
} else {
|
||||
$setIndex = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$doc->endElement();
|
||||
}
|
||||
|
|
@ -293,7 +293,7 @@ class Table
|
|||
}
|
||||
|
||||
protected function splitPane (XMLWriter $doc) {
|
||||
$doc->startElement('WorksheetOptions');
|
||||
$doc->startElement('WorksheetOptions');
|
||||
$doc->writeAttribute('xmlns', 'urn:schemas-microsoft-com:office:excel');
|
||||
|
||||
$doc->writeElement('FrozenNoSplit');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue