Corrupted File in PHPExcel

1

When generating the PhpExcel database file, the .xls file is coming corrupted, following image

Whatwouldbethemistake,ItriedtofindbutIdonotseeanythingwrong.Followcodes.

  

ThefollowingPHPcodereceivesdatafromanotherpageofacompletedform.Wheretheuserselectsthedatabasetableandwhichcolumnsyouwanttogeneratetheinformation.

//IncluimosaclassePHPExcelinclude'../componentes/plugins/PHPExcel/Classes/PHPExcel.php';$tabela=$_POST['txttabela'];#recebeonomedatabela$p_colunas=$_POST['chkcolunas'];#recebeascolunasdasrespctivastabelas$qtdColunas=count($p_colunas);#contaquantascolunasousuarioselecionou//Instanciamosaclasse$objPHPExcel=newPHPExcel();if($tabela==""){
  echo "Selecione a tabela.";
}else{
$sel_sintaxe = "SELECT "; # adiciona o SELECT, deixando o parateses aberto para concatenar no proximo $sel_sintaxe
$row = 1;
$col = 0;
for($i=0; $isetActiveSheetIndex(0)
    ->setCellValueByColumnAndRow($col, $row, $p_colunas[$i]);
    $col++;
}
#Usando o substr, retiramos os ultimos dois caracteres, que no caso seriam o espaço e uma virgula, que estariamo na ultima coluna.
$sel_sintaxe = substr($sel_sintaxe, 0, -2);
#Concatena qual tabela sera pesquisada os dados
$sel_sintaxe .= " FROM ".$tabela."";
#recebe as condições que o usuario difiniu
 $RdNull = $_POST['rdNull'];
 $RdDescAsc = $_POST['rdDescAsc'];
if(isset($_POST['txtlimite'])){
    $txtLimite = $_POST['txtlimite'];
}
if($RdNull || $RdDescAsc || isset($txtLimite)){
    if($RdNull=="nao"){
        $sel_sintaxe .=" WHERE ";
        for($i=0; $i
#Após executamos a pesquisa
$sql_sel_tabela_preparado = $conexaobd->prepare($sel_sintaxe);
$sql_sel_tabela_preparado->execute();
// Podemos definir as propriedades do documento
$objPHPExcel->getProperties()->setCreator("Rech Lanches")
->setLastModifiedBy("Nome da Empresa")
->setTitle("Nome da Empresa - Avaliações")
->setSubject("Nome da Empresa - Avaliações - Exportação")
->setDescription("Dados Exportados do Banco de Dados");
// Alterando o tamanho da fonte
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(11); 
// Define a planilha ativa para o PHPExcel operar
$objPHPExcel->setActiveSheetIndex(0);
// Define o título da planilha 
$objPHPExcel->getActiveSheet()->setTitle($tabela);
// Exemplo de preenchimento de dados de maneira dinâmica, a partir de um resultado do banco de dados por exemplo.
$linha = 3;
while($sql_sel_tabela_dados = $sql_sel_tabela_preparado->fetch()){
$col = 0;
for($i=0; $igetActiveSheet()->getStyle($colString."1")->applyFromArray(
            array('fill' => array(
                'type' => PHPExcel_Style_Fill::FILL_SOLID,
                'color' => array('rgb' => 'CBE28C')
            ),
            )
        );
        //Fazendo que as primeiras cédulas sejam em negrito
        $objPHPExcel->getActiveSheet()->getStyle($colString.'1')->getFont()->setBold(true);
        // Alterando o tamanho da fonte
        $objPHPExcel->getActiveSheet()->getStyle($colString.'1')->getFont()->setSize(14);
        // Qubra de linha ativada para todas as cédulas
        $objPHPExcel->getActiveSheet()->getStyle($colString)
        ->getAlignment()->setWrapText(true);
        // Alinha as cédulas ao meio
        $objPHPExcel->getActiveSheet()->getStyle($colString)
        ->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
        // Alinha as cédulas ao centro
        $objPHPExcel->getActiveSheet()->getStyle($colString)
        ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        // Alinha as cédulas.1 ao centro
        $objPHPExcel->getActiveSheet()->getStyle($colString.'1')
        ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        // Define a largura das colunas de modo automático
        $objPHPExcel->getActiveSheet()->getColumnDimension($colString)->setAutoSize(true);
        //Cria as linhas em suas repectivas letras números e dados
        $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue($colString. $linha, $sql_sel_tabela_dados[$colunaInver]);
        $col++;
    }
 $linha++;
}
$nometabela = "nomedaempresa_".$tabela.".xls";
#redefinimos configurações para gerar o arquivo, definir um nome, e forçar seu download.
header('Content-Type: application/vnd.openxmlformats- officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$nometabela);
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
ob_end_clean(); 
$objWriter->save('php://output');
exit;
}
    
asked by anonymous 18.12.2017 / 15:39

0 answers