php - 如何获取和设置高度和宽度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);
我有错误:
“调用未定义的方法 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
推荐阅读
- node.js - mongodb查找(聚合)
- amazon-web-services - 了解 Kubernetes 集群扩展
- flutter - Flutter Scrollbar 防止滚动条出现在水平列表视图上
- mongodb - bson.M {} deepequal 似乎无法处理 int32
- reactjs - ReactJS console.log 在几秒钟后消失
- javascript - 在首先传播数组后向其添加新对象时数组未更新
- python - 在 python 中使用 PrettyTable 和可点击的 html 链接作为列
- azure-cosmosdb - 更改合成分区键值的最有效方法
- python - How to efficiently calculate euclidean distance matrix for several timeseries
- jenkins - How do I prevent Jenkins from aborting builds if later builds "overtake"?