有人知道如何在PHPExcel中设置单元格填充吗?
我已经搜索了30分钟,仍然找不到合适的解决方案。
没有有用的文档资料。
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setIndent(1);
需要补充说明的是,仅当水平对齐设置为左对齐或右对齐时,此方法才有效。
如果尚未执行,请先执行以下操作:
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
干杯
我认为你需要的是扩展列。我已经找到了一个解决方案。你可以设置列维度为自动调整大小。这里有一个例子。
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
我在我的Laravel 9项目中使用了这种方法。
编辑:找到了一种动态实现的方法。
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$columnIndex = 'A';
foreach ($sheet->getColumnIterator($columnIndex) as $column) {
$columnIndex = $column->getColumnIndex();
$maxWidth = 0;
foreach ($column->getCellIterator() as $cell) {
$text = $cell->getValue();
$width = mb_strlen($text, 'UTF-8');
$maxWidth = max($maxWidth, $width);
}
$spreadsheet->getActiveSheet()->getColumnDimension($columnIndex)->setWidth($maxWidth+1);
}
Cell Padding是HTML的概念,在Excel中没有类似的东西。您如何在MS Excel本身中设置单元格填充?
可能最好的方法是设置单元格的高度和宽度。
编辑
我一直在谷歌搜索这个问题,甚至Microsoft也说Excel中没有单元格填充的等效物。最好的选择似乎是使用单元格对齐缩进(结合列宽)进行水平填充;以及行高和垂直对齐进行垂直填充。这些可以在PHPExcel中设置。