Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mpaulo

gerar relatório Excel

Recommended Posts

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.

 

150521042558149467.png

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.