Buenas tardes, les comento, actualmente tengo un sistema que recoge valores de un formulario los procesa llama a algún procedimiento Oracle y me genera un excel.
Me están solicitando que a partir de un formulario se creen varios archivos al mismo tiempo, y realmente no se si es posible.
Se les ocurre alguna manera?
Este es el metodo que genera el excel.
Código PHP:
Ver original/**
* Este método se encarga de generar los archivos excel para los demás métodos de la clase.
*
* @static
* @param statement $stid Es la salida que devuelve la consulta a oracle.
* @param boolean $debug Por defecto es false. True para correr test de unidad
* @return integer Son la cantidad de registros que devolvió la consulta (solo en modo debug).
*
*/
static private function generar($stid, $id_log, $debug) {
$row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS);
if ($row > 0 && !$debug) {
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Lucas Swider")
->setLastModifiedBy("Lucas Swider")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
$columna = 0;
foreach ($row as $key => $valor) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicitByColumnAndRow($columna, 1, $key);
$columna++;
}
$columna = 0;
foreach ($row as $key => $valor) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicitByColumnAndRow($columna, 2, $valor);
$columna++;
}
$j = 3;
while ($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) {
$columna = 0;
foreach ($row as $key => $valor) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValueExplicitByColumnAndRow($columna, $j, $valor);
$columna++;
}
$j++;
}
self::updatearLog($id_log, 1);
// Redirect output to a client?s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); $filename = 'Content-Disposition: attachment;filename="' . self::$_nombre . '.xlsx"';
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
}
self::updatearLog($id_log, $debug);
return $row;
}