Académique Documents
Professionnel Documents
Culture Documents
33->setCellValue('A5', '');
34
35// Renombrar la hoja de trabajo
echo date('H:i:s') , " Rename worksheet" , EOL;
36$objPHPExcel->getActiveSheet()->setTitle('Simple');
37
38
39// Definimos la hoja de clculo activa
40$objPHPExcel->setActiveSheetIndex(0);
41
42
43// Escribimos el resultado en una hoja de Excel 2007 (xlsx)
date('H:i:s') , " Write to Excel2007 format" , EOL;
44echo
$callStartTime = microtime(true);
45
46$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,
47'Excel2007');
48$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
49$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;
50
51echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx',
52pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
53echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , "
54seconds" , EOL;
55
Ahora salvamos los datos en Excel clsico
56//
echo date('H:i:s') , " Write to Excel5 format" , EOL;
57$callStartTime = microtime(true);
58
59$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
60$objWriter->save(str_replace('.php', '.xls', __FILE__));
61$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;
62
63echo date('H:i:s') , " File written to " , str_replace('.php', '.xls',
64pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
65echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , "
66seconds" , EOL;
67
68// Imprimimos en pantalla que se ha finalizado el trabajo.
echo date('H:i:s') , " Done writing files" , EOL;
69echo 'Files have been created in ' , getcwd() , EOL;
70
71
72
73
74
75
Como ya he dicho antes, la documentacin incluye un montn de ejemplos, casi 40, as que
podris sacar de ah mucha ayuda. Con esta librera podrs complacer a los clientes que
exigen sacar los resultados de las consultas directamente a hojas de clculo, por ejemplo.
Datos de salida
Para poder empezar a utilizar PHPExcel, debe de asegurarse que la versin de php de su servidor es 5.2 o superior.
Descargue los ficheros de la librera y ya los tiene listo para utilizar en sus proyectos.
Crear una hoja de clculo
El crear una hoja de clculo es una tarea sencilla como vamos a ver a continuacin. Lo primero que vamos a realizar es la
creacin del objeto PHPExcel con el que vamos a trabajar, y le vamos a meter metadatos como el ttulo, ltima
modificacin.... pero que no son datos de las celdas, esto lo haremos un poco ms adelante. El cdigo correspondiente a
esto es el siguiente.
require_once 'PHPExcel.php';
$objPHPExcel = new PHPExcel();
// Set properties
$objPHPExcel->getProperties()->setCreator("ThinkPHP")
->setLastModifiedBy("Daniel Schlichtholz")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test doc for Office 2007 XLSX, generated by PHPExcel.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
$objPHPExcel->getActiveSheet()->setTitle('Minimalistic demo');
Como hemos comentado, con el texto anterior no se meten datos en las celdas. Para meter datos hay que indicar la
coordenada donde debe de ir los datos que pongamos. Un ejemplo es el cdigo siguiente:
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'Hello')
->setCellValue('B1', 'world!');
Esta forma de trabajar no es muy til cuando se tienen muchos datos, pero esta librera nos proporciona una funcin para
indicarle las coordenadas y los datos para que l se encargue de introducir los datos. Un ejemplo de uso sera el siguiente:
require_once 'PHPExcel/IOFactory.php';
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
// Si queremos crear un PDF
//$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('MyExcel.xslx);
Leyendo hojas de clculo
PHPExcel es capaz de leer archivos de excel y extraer todos sus datos sin mucho esfuerzo. Para leer estos archivos, hay
que tirar de nuevo del objeto IOFactory.
require_once 'PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("MyExcel.xlsx");
Iterar por la hoja de clculo le permite moverse por toda la estructura del archivo, aunque este sea desconocido para el
usuario. La forma de hacerlos sera algo similar a esto:
require_once 'PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("MyExcel.xlsx");
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$worksheetTitle
= $worksheet->getTitle();
$highestRow
= $worksheet->getHighestRow(); // e.g. 10
$highestColumn
= $worksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex =
PHPExcel_Cell::columnIndexFromString($highestColumn);
$nrColumns = ord($highestColumn) - 64;
echo "<br>The worksheet ".$worksheetTitle." has ";
echo $nrColumns . ' columns (A-' . $highestColumn . ') ';
echo ' and ' . $highestRow . ' row.';
echo '<br>Data: <table border="1"><tr>';
for ($row = 1; $row <= $highestRow; ++ $row) {
echo '<tr>';
for ($col = 0; $col < $highestColumnIndex; ++ $col) {
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val = $cell->getValue();
$dataType = PHPExcel_Cell_DataType::dataTypeForValue($val);
echo '<td>' . $val . '<br>(Typ ' . $dataType . ')</td>';
}
echo '</tr>';
}
echo '</table>';
}
Tambin es posible convertir un tipo de archivo a otro tipo distinto en pocas lneas.
$objPHPExcel = PHPExcel_IOFactory::load("XMLTest.xml");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('covertedXml2Xlsx.xlsx');
Aqu hemos convertido un archivo XML a uno de tipo Excel2007.
poco en la explicacin pero espero haberme explicado, igual da click aqu para descargar
el ejemplo completo, incluyendo el documento en Excel del ejemplo, solo recuerda poner
los datos de conexin del mysql tuyo.
Ahora si nos vemos en la prxima, espero te sea de mucha, mucha utilidad como a m.
No dudes comentar o bien djame tus dudas, yo dos veces por semana checo comentarios
y contesto los mas posibles.