phpspreadsheet - PHPExcel establece el borde y el formato para todas las hojas en una hoja de cálculo
phpexcel_style_border phpspreadsheet (3)
Para responder a tu extra question
:
Puede establecer qué filas deben repetirse en cada página usando:
$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 5);
Ahora, las filas 1, 2, 3, 4 y 5 se repetirán.
Actualmente estoy tratando de establecer todos los bordes de mi hoja de cálculo, también de formato, como el tamaño automático.
Mi código de abajo está funcionando, para la hoja 1. Todas las demás hojas dentro de la hoja de cálculo están completamente intactas. He estado tratando de que funcione con todas las demás hojas dentro de esta hoja de cálculo pero sin suerte.
¿Alguna idea sobre cómo puedo configurar globalmente el formato para que todas las hojas tengan bordes y se ajusten automáticamente? El diseño de todas las hojas en esta hoja de cálculo son todos iguales. Estoy exportando a un archivo XLSX.
Aclamaciones,
/**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);
PREGUNTA EXTRA: Actualmente he establecido encabezados. Los encabezados aparecen en la hoja 1, pero no aparecen en ninguna otra hoja ... ¿es posible mostrar los encabezados en todas las hojas? Los encabezados se establecen en la Fila 1 y los resultados son de la Fila 2 abajo.
$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'');
Puede establecer un estilo predeterminado para todo el libro de trabajo (todas las hojas de trabajo):
$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);
o
$styleArray = array(
''borders'' => array(
''allborders'' => array(
''style'' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
$objPHPExcel->getDefaultStyle()->applyFromArray($styleArray);
Y esto se puede utilizar para todas las propiedades de estilo, no solo los bordes.
Pero el tamaño automático de las columnas es structural
lugar de stylistic
, y debe establecerse para cada columna en cada hoja de trabajo individualmente.
EDITAR
Tenga en cuenta que el estilo de libro predeterminado solo se aplica a Excel5 Writer
for ($s=65; $s<=90; $s++) {
//echo chr($s);
$objPHPExcel->getActiveSheet()->getColumnDimension(chr($s))->setAutoSize(true);
}