Ir para conteúdo
Fórum Script Brasil
  • 0

exportar arquivo em xls sai sem acentos


mauricioms

Pergunta

olha pessoal estou com um problema, num banco de dados fiz todo o sistema de cadastramento e exibição dos dados e tudo funciona inclusive para visualizaçõa na tela, tudo com acento Ç e tal, o que estou tentando fazer e exportar a tabela em xls ele exporta, mas exporta como esta no banco de dados com as letras trocadas e a maior bagunça o banco de dados esta em latin 1.

tentei adicionar um header

header ("Content-Type: text/html; charset=utf-8\r\n;" ); mas também não funcionou, se alguém puder dar uma luz.

segue abaixo o codigo que estou usando para gerar o xls.

<?php

// Definimos o nome do arquivo que será exportado
$arquivo = 'todos_usuarios.xls';

$query = "SELECT * FROM cadastro ORDER BY id DESC";
$resultado = mysql_query ($query);

$html = '';
$html .= '<table border=1>';
$html .= '<tr>';
$html .= '<td colspan=8 align=center><b>TODOS OS E-MAILS</b></tr>';
$html .= '</tr>';
$html .= '<tr>';
$html .= '<td><b>NOME</b></td>';
$html .= '<td><b>EMPRESA</b></td>';
$html .= '<td><b>TELEFONE</b></td>';
$html .= '<td><b>CIDADE</b></td>';
$html .= '<td><b>UF</b></td>';
$html .= '<td><b>E-MAIL</b></td>';
$html .= '<td><b>MSG</b></td>';
$html .= '<td><b>NEWSLETTER</b></td>';
$html .= '</tr>';


while($campo = mysql_fetch_array ($resultado)){

$nome                  = $campo ['nome'];
$empresa                = $campo ['empresa'];
$telefone            = $campo ['telefone'];
$cidade               = $campo ['cidade'];
$uf                  = $campo ['uf'];
$email                 = $campo ['email'];
$msg                  = $campo ['msg'];
$receber             = $campo ['receber'];

$html .= '<tr>';
$html .= '<td>' . $nome . '</td>';
$html .= '<td>' . $empresa . '</td>';
$html .= '<td>' . $telefone . '</td>';
$html .= '<td>' . $cidade . '</td>';
$html .= '<td>' . $uf . '</td>';
$html .= '<td>' . $email . '</td>';
$html .= '<td>' . $msg . '</td>';
$html .= '<td>' . $receber . '</td>';
$html .= '</tr>';
}
$html .= '</table>';


// Configurações header para forçar o download

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" );

// Envia o conteúdo do arquivo
echo $html;
exit;


?>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

acabei achando a reposta por ai no google vou colocar aqui assim pode ser util a quem estiver passando pelo mesmo problema.

mysql

O banco de dados deve ser criado com COLLATE utf8_general_ci, que define o banco como sendo utf-8.

CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Se já tiver um banco, faça a alteração com o comando a seguir.
ALTER DATABASE `bancodedados` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
php No seu script PHP de conexão com o banco de dados, você deve mudar o charset para UTF-8 e após a conexão mysql é preciso executar os comandos mysql para setar o charset.
header('Content-Type: text/html; charset=utf-8');

mysql_connect($servidor,$usuario,$senha);

mysql_select_db($database);

mysql_query("SET NAMES 'utf8'");

mysql_query('SET character_set_connection=utf8');

mysql_query('SET character_set_client=utf8');

mysql_query('SET character_set_results=utf8');

HTML

Nas páginas onde serão exibidas as informações inclua a meta tag abaixo para definir a página como UTF-8.

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

caso vocè tenha feito isso, acima e mesmo assim seus dados continuam com os caracteres malucos, isso acontece porque os dados existentes já foram enviados da maneira "errada" então não vão ser auterados vai ter que fazer na mão mesmo, mas tenta inserir um dado novo, ele vai funcionar.

aonde achei não tinha autor.

Editado por mauricioms
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...