如何获取和设置高度和宽度phpspreadsheet

How to get and set height and width phpspreadsheet

我想通过模板文件在我的新文件中设置高度和宽度

$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);

我有错误:

"Call to undefined method PhpOffice\PhpSpreadsheet\Cell\Cell::getWidth()"

单元格没有这种方法,必须设置为整个列或行。 在列上使用 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