Как получить и установить высоту и ширину phpspreadsheet - PullRequest
0 голосов
/ 04 января 2019

Я хочу установить высоту и ширину в моем новом файле из файла шаблона

$string = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($col); // e.g. 5

$width = $worksheet->getCellByColumnAndRow($col, $row)->getWidth();
$height = $worksheet->getCellByColumnAndRow($col, $row)->getHeight();

$spreadsheet->getActiveSheet()->getColumnDimension($string)->setWidth($width);
$spreadsheet->getActiveSheet()->getRowDimension($row)->setHeight($height);

У меня ошибка:

"Вызов неопределенного метода PhpOffice \ PhpSpreadsheet \ Cell \Cell :: getWidth () "

1 Ответ

0 голосов
/ 04 января 2019

Нет такого метода для ячейки, вы должны установить его для всего colmun или строки.Используйте getColumnDimension () для столбца

$sheet->getColumnDimensionByColumn()
$sheet->getColumnDimensions()
$sheet->calculateColumnWidths() // Calculate widths for auto-size columns. 

Кроме того, у вас есть метод, который делает это автоматически:

/**
 * Update column dimensions when inserting/deleting rows/columns.
 *
 * @param Worksheet $pSheet The worksheet that we're editing
 * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
 * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
 * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
 * @param int $beforeRow Number of the row we're inserting/deleting before
 * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
 */
protected function adjustColumnDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
{
    $aColumnDimensions = array_reverse($pSheet->getColumnDimensions(), true);
    if (!empty($aColumnDimensions)) {
        foreach ($aColumnDimensions as $objColumnDimension) {
            $newReference = $this->updateCellReference($objColumnDimension->getColumnIndex() . '1', $pBefore, $pNumCols, $pNumRows);
            list($newReference) = Coordinate::coordinateFromString($newReference);
            if ($objColumnDimension->getColumnIndex() != $newReference) {
                $objColumnDimension->setColumnIndex($newReference);
            }
        }
        $pSheet->refreshColumnDimensions();
    }
}

В PhpOffice \ PhpSpreadsheet \ ReferenceHelper

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...