mpaulo 1 Denunciar post Postado Maio 21, 2015 Fala pessoal blz? estou gerando um relatório em php e mysql para excel e o relatório gera tudo certo, mas na hora de abrir o arquivo excel(xls) ele aparece uma mensagem que o aquivo pode estar corrompido mais se clicar na opção sim ele abre o arquivo tranquilo como que faço para não exibir essa mensagem? . segue o codigo q estou utilizando <?php // Inclui a conexão include_once('conexao.php'); // Nome do Arquivo do Excel que será gerado $arquivo = date('Y-m-d').'.xls'; // Criamos uma tabela HTML com o formato da planilha para excel $tabela = '<table border="1">'; $tabela .= '<tr>'; $tabela .= ' <td colspan=17><h1><b>Relatorio Protocolo "'.date('Y-m-d').'"</b></h1></tr>'; $tabela .= '</tr>'; $tabela .= '<tr>'; $tabela .= '<td><b>Número Protocolo</b></td>'; $tabela .= '<td><b>Aluno</b></td>'; $tabela .= '<td><b>curso</b></td>'; $tabela .= '<td><b>Turno</b></td>'; $tabela .= '<td><b>Serie</b></td>'; $tabela .= '<td><b>Turma</b></td>'; $tabela .= '<td><b>ra</b></td>'; $tabela .= '<td><b>Fone Res</b></td>'; $tabela .= '<td><b>Celular</b></td>'; $tabela .= '<td><b>Fone Com </b></td>'; $tabela .= '<td><b>Email</b></td>'; $tabela .= '<td><b>Requer</b></td>'; $tabela .= '<td><b>Disciplinas</b></td>'; $tabela .= '<td><b>Atendente</b></td>'; $tabela .= '<td><b>obs</b></td>'; $tabela .= '<td><b>Valor</b></td>'; $tabela .= '<td><b>Data</b></td>'; $tabela .= '</tr>'; // Puxando dados do Banco de dados $resultado = mysql_query("SELECT * FROM protocolo WHERE relatorio = '0' and pago ='1' "); while($dados = mysql_fetch_array($resultado)) { //atualiza que já foi gerado o relatorio $id = $dados['id']; $insertsql = "UPDATE protocolo SET relatorio = '1' WHERE id = '" . $id . "' ;"; mysql_query($insertsql) or die("erro mysql: ".mysql_error()); $tabela .= '<tr>'; $tabela .= "<td style='mso-number-format:\@;'>".$dados['num_protocolo']."</td>"; $tabela .= '<td>'.utf8_decode($dados['nome']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['curso']).'</td>'; $tabela .= '<td>'.$dados['turno'].'</td>'; $tabela .= '<td>'.utf8_decode($dados['serie']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['turma']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['ra']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['fone_res']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['celular']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['fone_com']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['email']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['requer']).'</td>'; $tabela .= '<td style="background-color:#d1d1d1;">'.utf8_decode($dados['disciplinas']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['atendente']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['obs']).'</td>'; $tabela .= '<td>'.utf8_decode($dados['valor']).'</td>'; $data = $dados['data']; $data = date("d-m-Y",strtotime(str_replace('/','-',$data))); $tabela .= '<td>'.utf8_decode($dados['data']).'</td>'; $tabela .= '</tr>'; } $tabela .= '</table>'; // Força o Download do Arquivo Gerado header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT"); header ("Cache-Control: no-cache, must-revalidate"); header ("Pragma: no-cache"); header ("Content-type: application/x-msexcel"); header ("Content-Disposition: attachment; filename={$arquivo}" ); header ("Content-Description: PHP Generated Data" ); echo $tabela; ?> e a mensagem. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 21, 2015 Use PHPExecel https://github.com/PHPOffice/PHPExcel Depois de instanciar a classe, na saída basta informar 'Excel5' Exemplo // close table and output $this->PhpExcel->addTableFooter() /* //->output('nome_arquivo.xlsx', 'Excel2007'); */ ->output('nome_arquivo.xls', 'Excel5'); Compartilhar este post Link para o post Compartilhar em outros sites
mpaulo 1 Denunciar post Postado Maio 21, 2015 vlw williams, usei a classe PHPexcel e deu certinho Brigadão! Compartilhar este post Link para o post Compartilhar em outros sites