我目前正在尝试为电子表格设置所有边框,还要设置自动调整大小等格式.
对于工作表1,下面的代码正在工作.电子表格中的所有其他工作表都完全不受影响.我一直试图让它与这个电子表格中的所有其他工作表一起工作,但没有运气.
关于如何全局设置格式以便所有工作表都有边框并自动调整大小的任何想法?此电子表格中所有工作表的布局都是相同的.我正在导出到XLSX文件.
干杯,
/**autosize*/
for ($col = 'A'; $col != 'P'; $col++) {
$objPHPExcel->getActiveSheet()->getColumnDimension($col)->setAutoSize(true);
}
/** Borders for all data */
$objPHPExcel->getActiveSheet()->getStyle(
'A2:' .
$objPHPExcel->getActiveSheet()->getHighestColumn() .
$objPHPExcel->getActiveSheet()->getHighestRow()
)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
/** Borders for heading */
$objPHPExcel->getActiveSheet()->getStyle(
'A1:O1'
)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);
额外问题:
我目前已经设定了标题.标题确实出现在纸张1上,但不会出现在任何其他纸张中..是否可以在所有纸张中显示标题?
标题在第1行中设置,结果来自第2行.
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Asset_id');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Asset_name');
$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Asset_type');
$objPHPExcel->getActiveSheet()->setCellValue('D1', 'Asset_make');
$objPHPExcel->getActiveSheet()->setCellValue('E1', 'Asset_model');
解决方法:
您可以为整个工作簿(所有工作表)设置默认样式:
$objPHPExcel->getDefaultStyle()
->getBorders()
->getTop()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getDefaultStyle()
->getBorders()
->getBottom()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getDefaultStyle()
->getBorders()
->getLeft()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getDefaultStyle()
->getBorders()
->getRight()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
要么
$styleArray = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
$objPHPExcel->getDefaultStyle()->applyFromArray($styleArray);
这可以用于所有样式属性,而不仅仅是边框.
但是列自动调整是结构性的而不是样式的,必须分别为每个工作表上的每一列设置.
编辑
请注意,默认工作簿样式仅适用于Excel5 Writer