working texto not medio justificar combinar columna centrar celdas celda ancho alinear ajustar adjust php phpexcel

texto - Configuración de la columna de tamaño automático phpExcel



phpexcel autosize not working (3)

Como se describe en la sección 4.6.28 de la documentación del desarrollador, titulada Setting a column''s width :

$objPHPExcel->getActiveSheet() ->getColumnDimension(''A'') ->setAutoSize(true);

Esto debe configurarse individualmente para cada columna, para configurarla para todas las columnas A a F, use un bucle

for($col = ''A''; $col !== ''G''; $col++) { $objPHPExcel->getActiveSheet() ->getColumnDimension($col) ->setAutoSize(true); }

¿Cómo puedo hacer que PHPExcel cree el ancho de la columna automáticamente? No me gusta tener que ir a mano y estirar las columnas con el ancho. He visto otros ejemplos, pero ninguno funciona para mí. Aquí está mi código:

$objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setCellValue(''A1'', "Company Name"); $objPHPExcel->getActiveSheet()->setCellValue(''B1'', "Company Type"); $objPHPExcel->getActiveSheet()->setCellValue(''C1'', "First Name"); $objPHPExcel->getActiveSheet()->setCellValue(''D1'', "Last Name"); $objPHPExcel->getActiveSheet()->setCellValue(''E1'', "Position"); $objPHPExcel->getActiveSheet()->setCellValue(''F1'', "Email"); // Set outline levels $objPHPExcel->getActiveSheet()->getColumnDimension(''E'')->setOutlineLevel(1) ->setVisible(false) ->setCollapsed(true); // Freeze panes $objPHPExcel->getActiveSheet()->freezePane(''A2''); // Rows to repeat at top $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); try { $stmt3 = $DB->prepare(''SELECT * FROM companies C INNER JOIN personalInfo PI ON C.CompanyName = PI.Company_id''); $stmt3->execute(); } catch(PDOException $e) { echo $e->getMessage(); } $info3 = $stmt3->fetchAll(); $i = 2; foreach($info3 as $info) { $objPHPExcel->getActiveSheet()->setCellValue(''A'' . $i, $info[''CompanyName'']) ->setCellValue(''B'' . $i, $info[''CompanyType'']) ->setCellValue(''C'' . $i, $info[''firstName'']) ->setCellValue(''D'' . $i, $info[''lastName'']) ->setCellValue(''E'' . $i, $info[''position'']) ->setCellValue(''F'' . $i, $info[''email'']); $i++; } // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Save Excel 2007 file $callStartTime = microtime(true); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ''Excel2007''); $objWriter->save(str_replace(''.php'', ''.xlsx'', __FILE__)); $callEndTime = microtime(true); $callTime = $callEndTime - $callStartTime; echo "Excel file has been created click <a href=''Excel.xlsx''>HERE</a> to view it.";


foreach(range(''A'',''G'') as $columnID) { $objPHPExcel->getActiveSheet()->getColumnDimension($columnID)->setAutoSize(true); }


$nCols = 6; //set the number of columns foreach (range(0, $nCols) as $col) { $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($col)->setAutoSize(true); }