我正在尝试自动调整工作表中列的大小。我正在编写文件,最后尝试调整所有列的大小。
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('B1', 'test1111111111111111111111')
->setCellValue('C1', 'test1111111111111')
->setCellValue('D1', 'test1111111')
->setCellValue('E1', 'test11111')
->setCellValue('F1', 'test1')
->setCellValue('G1', 'test1');
foreach($objPHPExcel->getActiveSheet()->getColumnDimension() as $col) {
$col->setAutoSize(true);
}
$objPHPExcel->getActiveSheet()->calculateColumnWidths();
上面的代码不起作用。不更改列大小以适合文本
更新我正在使用$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
的编写器
发布于 2017-11-05 02:17:57
以防有人在找这个。
下面的解决方案也适用于他们的新版本PHPExcel - PHPSpreadsheet
。
// assuming $spreadsheet is instance of PhpOffice\PhpSpreadsheet\Spreadsheet
// assuming $worksheet = $spreadsheet->getActiveSheet();
foreach(range('A',$worksheet->getHighestColumn()) as $column) {
$spreadsheet->getColumnDimension($column)->setAutoSize(true);
}
注意:可以用
getHighestDataColumn()
或最后一个实际列替换getHighestColumn()
。
这些方法的作用:
getHighestColumn($row = null)
-获取最高的工作表列。
getHighestDataColumn($row = null)
-获取包含数据的最高工作表列。
getHighestRow($column = null)
-获取最高的工作表行
getHighestDataRow($column = null)
-获取包含数据的最高工作表行。
https://stackoverflow.com/questions/16761897
复制相似问题