Tengo un problema al momento de exportar archivos con PHPExcel. De manera local, en mi PC con XAMPP al momento que exporto un archivo a Excel funciona muy bien, sin embargo, cuando subí el proyecto a un servidor (proveedor de hosting) me marca el siguiente error:
"Excel no puede abrir el archivo 'ReporteClientes.xlsx' porque el formato o la extensión de este no son válidos. Compruebe que el archivo no se ha dañado y que la extensión del mismo coincide con el formato del archivo."
Este es mi archivo para generarlo:
Código PHP:
       require("database/config-db.php");
 
    /* --------------------------------------------------------------------------------------------------------
        Query:             Listado de clientes.
        Descripción:    Muestra un listado de todos los clientes registrados en el sistema.
        Creación:        Marzo 7, 2017        
    ---------------------------------------------------------------------------------------------------------*/
 
    if(isset($_POST['getReport'])){
    
    $sqlSelectClients = mysqli_query($conn, "Select * from cs_clients");
    $registros = mysqli_num_rows($sqlSelectClients);
    
    if ($registros > 0) {
        
        date_default_timezone_set('America/Mexico_City');
        
        if (PHP_SAPI == 'cli')
            die('Este archivo solo se puede ver desde un navegador web');
        
        /** Se agrega la libreria PHPExcel */
         require_once ("scripts/PHPExcel/Classes/PHPExcel.php");
         
        // Se crea el objeto PHPExcel
         $objPHPExcel = new PHPExcel();
         
         // Se asignan las propiedades del libro
        $objPHPExcel->getProperties()->setCreator("Codedrinks") // Nombre del autor
            ->setLastModifiedBy("Codedrinks") //Ultimo usuario que lo modificó
            ->setTitle("Reporte de Clientes") // Titulo
            ->setSubject("Reporte de Clientes") //Asunto
            ->setDescription("Reporte de Clientes") //Descripción
            ->setKeywords("reporte clientes") //Etiquetas
            ->setCategory("Reporte excel"); //Categorias
        
        $tituloReporte = "Reporte de Clientes";
        $titulosColumnas = array('CLIENTE', 'RFC', 'EMPRESA', 'CONTACTO', 'CORREO', 'TELÉFONO', 'DIRECTORIO', 'FECHA');
        
        // Se combinan las celdas A1 hasta D1, para colocar ahí el titulo del reporte
        $objPHPExcel->setActiveSheetIndex(0)
            ->mergeCells('A1:D1');
         
        // Se agregan los titulos del reporte
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1',$tituloReporte) // Titulo del reporte
            ->setCellValue('A3',  $titulosColumnas[0])  //Titulo de las columnas
            ->setCellValue('B3',  $titulosColumnas[1])
            ->setCellValue('C3',  $titulosColumnas[2])
            ->setCellValue('D3',  $titulosColumnas[3])
            ->setCellValue('E3',  $titulosColumnas[4])
            ->setCellValue('F3',  $titulosColumnas[5])
            ->setCellValue('G3',  $titulosColumnas[6])
            ->setCellValue('H3',  $titulosColumnas[7]);                                                
            
            //Se agregan los datos del cliente
         
         $i = 4; //Numero de fila donde se va a comenzar a rellenar
         while ($fila = $sqlSelectClients->fetch_array()) {
             $objPHPExcel->setActiveSheetIndex(0)
                 ->setCellValue('A'.$i, $fila['cli_cliente'])
                 ->setCellValue('B'.$i, $fila['cli_rfc'])
                 ->setCellValue('C'.$i, $fila['cli_empresa'])
                 ->setCellValue('D'.$i, $fila['cli_contacto'])
                 ->setCellValue('E'.$i, $fila['cli_correo'])
                 ->setCellValue('F'.$i, $fila['cli_telefono'])
                 ->setCellValue('G'.$i, $fila['cli_directorio'])                                                                    
                 ->setCellValue('H'.$i, $fila['cli_fecha']);
             $i++;
         }
         
        // Se asigna el nombre a la hoja
        $objPHPExcel->getActiveSheet()->setTitle('Clientes');
         
        // Se activa la hoja para que sea la que se muestre cuando el archivo se abre
        $objPHPExcel->setActiveSheetIndex(0);
         
        // Inmovilizar paneles
        //$objPHPExcel->getActiveSheet(0)->freezePane('A4');
        $objPHPExcel->getActiveSheet(0)->freezePaneByColumnAndRow(0,4);
        
        // Se manda el archivo al navegador web, con el nombre que se indica, en formato 2007
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="ReporteClientes.xlsx"');
        header('Cache-Control: max-age=0');
         
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('php://output');
        exit;
        }
        else{
            print_r('No hay resultados para mostrar');
        }
    } 
    ¿Saben cuál podría ser el error? ¿Alguna idea?
Saludos!
 

