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

Gerar .xls e abrir no Broffice


Leon Carreras

Pergunta

Boa tarde a todos,

Estou gerando um arquivo .xls no php e quando faço o download dele e tento abrir no broffice ele mostra as tag html, porém, se abro no excel, ele aparece certinho.

Estou usando fopen para criar o arquivo e fwrite para inserir as linhas, estou utilizando só o header "location...".

Alguém já passou por isso, ou sabe a solução? Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Leon Carreras,

Por que não usa .csv? Funciona em Excel, Calc,...

Daí você utiliza fputcsv para escrever no arquivo.

Mais sobre esta função

Att

Então cara, é o seguinte, isso ai é uma planilha que meu chefe quer e tem algumas formatações do tipo "colspan" no html, eu não sei como eu faria isso no .csv, por isso pensei direto no .xls.

Link para o comentário
Compartilhar em outros sites

  • 0
Leon Carreras,

Só uma coisa: O Calc importa table em html.

Se isso não resolve, então:

Tem como você postar um pequeno exemplo do seguinte:

1) Código gerado no php ao fazer o download;

2) Visualização pelo Excel;

3) Visualização pelo Calc;

Daí eu ver o que consigo fazer

Marcos, como o codigo é bem grande vou postar alguns trechos(se precisar do código todo eu posto).

esse trecho são os cabeçalhos da tabela.


$fp = fopen("/php/relatorios/".$nome."_rel_geral_pedidos.xls","w+");
fwrite($fp,"<table>");
fwrite($fp,"<tr>");
fwrite($fp,"<td colspan='7' align='center'><strong>Dados do Cliente</strong></td>");
fwrite($fp,"<td colspan=\"7\" align=\"center\" ><strong>Endereco Principal</strong></td>");
fwrite($fp,"<td colspan=\"7\" align=\"center\" ><strong>Endereco de Entrada</strong></td>");
fwrite($fp,"<td colspan=\"4\" align=\"center\" ><strong>Personalizacao</strong></td>");
for($i = 0;$i<$qtd_pgtos;$i++){
fwrite($fp,"<td colspan=\"11\"align=\"center\" ><strong>Pagamento do ". $i+1 ." Selo</strong></td>");
}
fwrite($fp,"</tr>");
fwrite($fp,"<tr>");
fwrite($fp,"<td ><strong>Data pedido</strong></td>");
fwrite($fp,"<td ><strong>Codigo Origem</strong></td>");
fwrite($fp,"<td ><strong>Origem Pedido</strong></td>");
fwrite($fp,"<td ><strong>Customer ID</strong></td>");
fwrite($fp,"<td ><strong>Customer Name</strong></td>");
fwrite($fp,"<td ><strong>CPF / CNPJ</strong></td>");
fwrite($fp,"<td ><strong>I.E.</strong></td>");
fwrite($fp,"<td ><strong>Logradouro</strong></td>");
fwrite($fp,"<td ><strong>Numero</strong></td>");
fwrite($fp,"<td ><strong>Complemento</strong></td>");
[/codebox]

esses aqui são do preenchimento dela.

[codebox]
fwrite($fp,"<tr>");
fwrite($fp,"<td>".$ret[$i]['data_pedido']."</td>");
fwrite($fp,"<td>".$ret[$i]['id_codigo_origem']."</td>");
fwrite($fp,"<td>".$ret[$i]['origem_pedido']."</td>");
fwrite($fp,"<td>".$ret[$i]['id_cliente_hallmark']."</td>");
fwrite($fp,"<td>".$ret[$i]['nome']."</td>");
fwrite($fp,"<td>".$ret[$i]['cpf_cnpj']."</td>");
fwrite($fp,"<td>".$ret[$i]['ie']."</td>");
for ($k = 0;$k<sizeof($ret[$i]['endereco']);$k++){
if($k == 0 && $ret[$i]['endereco'][$k] == 'entrega'){
fwrite($fp,"<td>   </td>");
fwrite($fp,"<td>   </td>");
fwrite($fp,"<td>   </td>");
fwrite($fp,"<td>   </td>");
fwrite($fp,"<td>   </td>");
fwrite($fp,"<td>   </td>");
fwrite($fp,"<td>   </td>");
fwrite($fp,"<td>".$ret[$i]['endereco'][$k]['logradouro']."</td>");
fwrite($fp,"<td>".$ret[$i]['endereco'][$k]['numero']."</td>");
fwrite($fp,"<td>".$ret[$i]['endereco'][$k]['complemento']."</td>");
fwrite($fp,"<td>".$ret[$i]['endereco'][$k]['bairro']."</td>");
fwrite($fp,"<td>".$ret[$i]['endereco'][$k]['cidade']."</td>");
fwrite($fp,"<td>".$ret[$i]['endereco'][$k]['UF']."</td>");
fwrite($fp,"<td>".$ret[$i]['endereco'][$k]['cep']."</td>");

e aqui é o finalzinho dele.


fclose($fp);

header("Location: ../relatorios/".$nome."_rel_geral_pedidos.xls");
[/codebox]

A visualização no excel fica show, no broffice fica assim:

<table width='100%' border='1' cellpadding='2' cellspacing='0'><tr><td colspan='7' align='center' class='total'><strong>Dados do Cliente</strong></td><td colspan="7" align="center" class="total"><strong>Endereco Principal</strong></td><td colspan="7" align="center" class="total"><strong>Endereco de Entrada</strong></td><td colspan="4" align="center" class="total"><strong>Personalizacao</strong></td>1 Selo</strong></td>1 Selo</strong></td></tr><tr><td class="td_conteudo_divino_1"><strong>Data pedido</strong></td><td class="td_conteudo_divino_1"><strong>Codigo Origem</strong></td><td class="td_conteudo_divino_1"><strong>Origem Pedido</strong></td><td class="td_conteudo_divino_1"><strong>Customer ID</strong></td><td class="td_conteudo_divino_1"><strong>Customer Name</strong></td><td class="td_conteudo_divino_1"><strong>CPF / CNPJ</strong></td><td class="td_conteudo_divino_1"><strong>I.E.</strong></td><td class="td_conteudo_divino_1"><strong>Logradouro</strong></td><td

valeu pela força!!

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

  • 0
Leon Carreras,

Existe duas formas que eu executei em casa e funcionou:

1) Ao invés de você abrir direto do download, você faz o download primeiro depois usa o abrir do calc no menu Ficheiro;

2) Salvar-lo como .xlsx

Se eu encontrar algo melhor, posto aqui

Att

Então cara, eu tentei esse lance de baixar e abrir com o calc e não rolou. Fiz o que você falou, de salvar como .xlxs, ele nem pede pra fazer o download, ele simplesmente printa tudo na tela...heheheh.... acontece isso tb quando salvo como .odt... Tá fogo isso aqui viu....

De qualque modo valeu pela força que você tá dando...

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...