Ir para conteúdo
fabianebalz

Pular linha no excel exportando relatório em php

Recommended Posts

Tenho um relatório em php que estou exportando para excel

Sempre que tenho um "<br>" no meio da string o excel gera uma nova linha na planilha

Gostaria de saber se alguém conhece alguma forma de substituir esse "<br>" e fazer essa quebra de linha na mesma célula do excel

Já tentei "\r", "\n" e muitos outros sem sucesso

Se alguém tiver alguma solução por favor me ajudem!! 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que tenha duas formas pra fazer isso.

 

A primeira é procura o <br> dentro da string e substituir ela, pode usar str_replace ou preg_replace. Pode substituir todos o "<br>" por espaços por exemplo " ".

 

A segunda é escapar caracteres especiais / tags HTML e PHP com strip_tags.

 

Uma delas deve resolver seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente não rolou Marcos...

Consigo tirar os brs... mas daí fica a informação todo corrida 

image.thumb.png.2eee76bf7046a47b48053c5a1a668578.png

 

Se eu colocar o < br > vai aparecer assim, com as celular adicionais...

image.thumb.png.03517fc2616c507d8813f692a732fdc0.png

 

O correto seria vir assim, todas as informações, porém quebrando a linha dentro da propria celula

 

image.thumb.png.746c236bd7fa27b72ee557604655060d.png

 

Se tiver alguma sugestão a mais eu agradeço imensamente... 

É uma planilha para um cliente que tem urgência e não estou conseguindo corrigir

image.png

image.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto vem de um Banco ou arquivo  ?

carriage return pode estar na base.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vem do banco de dados... temos um formulário onde o cliente adiciona informações

Nesse excel preciso mostrar todas essa informações, porém o cliente quer tudo nessa mesma celula...

 

Desculpe, não entendi seu comentário:

 

carriage return pode estar na base

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já passei por algo assim creio , o campo de um cr no próprio texto que desformata o excel , a solução é no select fazer algo como

 

select replace(campo,<cr>,' ') campo

from

 

 

onde ,<cr> é a defição do valor do Carriege Return no Banco em questão , no Oracle seria chr(13) se não falha a memória.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por pushline
      sou novo em php e to aprendendo ainda, e me deparei com esse algoritmo e estou travado, por favor alguém me ajude?
       
      Um posto de combustível vende três tipos de combustível: etanol, diesel e gasolina. O preço por
      litro de combustível e apresentado na tabela a seguir. Desenvolva em php e html uma página onde o
      usuário informe um caractere que representa o tipo de combustível comprado (e, d ou g) e a
      quantidade em litros. Ao final, a página deverá mostrar o valor total a ser pago pelo combustível.
      Combustível Preço por Litro
      E – Etanol R$ 3,505
      D – Diesel R$ 3,653
      G – Gasolina R$ 4,595
       
      todo o jeito de codigo q eu fiz ficou travado e nao foi
    • Por LuanMartinsTI
      Tenho o seguinte problema, eu preciso dar um select em duas tabelas, ou ter dois selects tanto faz, eu fiz com inner join e com union all mas nao consigo ter o resultado que eu desejo
      O problema é o seguinte> Pra saber quantos usuarios eu tenho em cada grupo eu preciso dar um select na membros grupo com o id do grupo, mas eu preciso mostrar apenas os 5 primeiros grupos com mais gente, eu nao tenho na tabela falando grupo 1 tem 50 membros, eu tenho 50 linhas com grupo 1 e id do usuario, como eu transformo isso no que eu quero? a unica forma q eu pensei é criar um campo novo em grupos e colocar la o resultado de rowCount, mas gostaria de saber se é possivel fazer sem, eu ja consigo mostrar quantos usuarios cada grupo tem, eu nao consigo mostrar é em ordem e nao é so dar o asc o problema é na logica provavelmente, mas se for possivel resolver isso com uma unica query ficarei grato
      tabela 1
      grupos( id nome dono created stat ) tabela 2
      membros_grupo( id grupo_id user_id )  
      PHP
      public function ultimosGrupos($limite){ try { $query = "SELECT * FROM groups ORDER BY id ASC LIMIT :limite"; $this->Select = $this->Conn->prepare($query); $this->Select->bindParam(':limite' , $limite, PDO::PARAM_INT); $this->Select->execute(); if($this->Select->rowCount() > 0){ return $this->Select->fetchAll(PDO::FETCH_ASSOC); }else{ return FALSE; } } catch (PDOException $exc) { exibeMensagens("Erro ao consultar. {$exc->getMessage()}", WS_ERROR); } } public function users_por_grupo($id){ try { $query = "SELECT * FROM group_memberships WHERE group_id = :id"; $this->Select = $this->Conn->prepare($query); $this->Select->bindParam(':id' , $id, PDO::PARAM_INT); $this->Select->execute(); return $this->Select->rowCount(); } catch (PDOException $exc) { exibeMensagens("Erro ao consultar. {$exc->getMessage()}", WS_ERROR); } }  
    • Por Robson Augusto
      Galera se alguém souber o que ocorre,  é o seguinte, não acredito que possa ser Problema de SEO, mas vamos lá meu site anuncicarbh.com, não aparece em pesquisa feitas pelo computador, com a palavra chave "seminovos bh", ele aparece na primeira oscilando para segunda pagina do bing e yahoo, fazendo a pesquisa pelo telefone, ja no pc ele nao aparace mais no yahoo, mas continua a aparecer no bing, ja no google ele teve pequenas aparições na terceira página, agora em ambas as pesquisas de pc e celular ja não aparece mais no google... So aparece atualmente no google, pesquisando pelo nome do site... Alguem saberia me dizer o por que disso? será SEO?
    • Por martinazzo
      Olá pessoal,
       
      sou novo por aqui e não sei bem como funciona, mas sei que preciso de uma ajuda kkkkk
      se puderem me dar uma mão ficaria grato;
       
      Estou tendo problemas em como pegar id de uma linha clicada em uma table, que já recebe os dados de um bd. Eu gostaria de poder editar os campos e salvar no banco de dados usando o ID da linha clicada;
       
      Vou colar o código abaixo, não reparem na bagunça kkkkk
       
      conexao.php
       
      <?php
      $server = "XXXXX";         Conferido e esta correto;
      $username = "XXXXX";  Conferido e esta correto;
      $password = "XXXXX";  Conferido e esta correto;
      $dbname = "XXXXX";     Conferido e esta correto;
      $conn = mysqli_connect($server, $username, $password, $dbname);
      ?>
       
      altera.php
       
      <?php 
      $link = mysqli_connect("XXXXXX", "XXXXX", "XXXXX", "XXXXXX"); Conferido
      $sql = "SELECT * FROM interface ";
      $consulta = mysqli_query($link, $sql);
      ?>
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="UTF-8">
      <meta http-equiv="refresh" content="30">
      <link rel="stylesheet" type="text/css" href="style.css">
      <script src="sorttable.js"></script>
      <title>Dashboard</title>
      <?php 
      session_start();
      if(!isset($_SESSION['login']) and !isset ($_SESSION['senha'])){
          session_destroy();
        unset($_SESSION['login']);
        unset($_SESSION['senha']);
        header('location:index.html');
        
        }
        
      ?>

      </head>
      <body>
      <a href="index.php"><img src="img/ditec_smart_hor_150px.png"></a>
      <div class="borda_titulo">
      <h2><center>DIMILK | Equipamentos</font></h2></center></div><br /><br />
      <form name="equipamento" action="salva.php" method=post>
      <center><table id="minhaTabela" border="3" class="sortable" bgcolor="#1E90FF">
        <tr>
        <th><center>ID </center></th>
        <th><center>MAC</center></th>
        <th><center>Habilitado</center></th>
        <th><center>Descrição</center></th>
        <th><center>Altura Tarro</center></th>
        <th><center>Área Tarro</center></th>
        <th><center>Alterar</center></th>
        </tr>
        
          <?php while($registro = mysqli_fetch_assoc($consulta)){
              echo '<tr bgcolor="#ADD8E6" scope="row">';
              echo '<td name="id"><center>'.$registro["id"].'</center></td>';
              echo '<td name="mac"><center>'.$registro["mac"].'</center></td>';
              echo '<td><center><input type="checkbox" name="status" value="$teste"><br></center></td>';
              echo '<td id="linha_desc"><textarea name="desc" type=text placeholder="'.$registro["descricao"].'" /></textarea></td>';
              echo '<td><input name="altura" type=text style="width: 70px;" placeholder="'.$registro["altura_latao"].' cm" /></td>';
              echo '<td><input name="area" type=text style="width: 70px;" placeholder="'.$registro["area_latao"].' cm" /></td>';
              
              echo '<td><form method="get" action="salva.php"><center><button class="voltar" type="submit">Salvar</button></center></form><br />';
              echo '</tr>';
              }
          echo '</tbody></table></form>';
          
          ?></center><br />
          
              <div>            
                  <form method="get" action="index.html">        
                  <center><button class="voltar" type="submit">Voltar</button></center></form>
              </div>
                      
                      <br />
                      <footer class="borda_texto"><center>
                      <img src="img/rodape_logo.png">
                          2019 © <b>DITEC - Smart Solutions</b> - Todos os Direitos Reservados.
                      <a class="px-4" href="https://www.ditecsc.com.br" target="_blank">Ditec - Smart Solution</a>
                      </center></footer>
      </body>
      </html>
       
      salva.php
       
      <?php
      include('conexao.php');
      include_once('altera.php');
       
      // declaração de variáveis
      $id = 22;
      /*$id = $_GET['id'];
      $status = $_POST['status'];*/
      $descricao = $_POST['desc'];
      $altura = $_POST['altura'];
      $area = $_POST['area'];
       
      $up = mysqli_query($conn, "UPDATE interface SET descricao='$descricao', altura_latao='$altura', area_latao='$area' WHERE id=$id"); 
       
      if(mysqli_affected_rows($conn) > 0){
        echo '<center><h1><b>Sucesso</b></h1><br /> <h2>Atualizado!</h2></center>';
        header("Refresh: 2;url=equipamentos.php");
      }else{
          echo '<center><h1><b>Erro</b></h1><br /> <h2>Não foi atualizado!</h2></center>';
        header("Refresh: 2;url=altera.php");
      }
       
      mysqli_close($conn);
      ?>
       
      Do jeito que esta eu consigo alterar o id=22, mas não consegui pegar o id da linha sequente;
       
       
    • Por Fabricio Guilherme
      Olá pessoal, esse é meu primeiro post, gostaria de uma ajuda de alguém que tenha contato com Woocommerce/ Wordpress.
      Eu recebi uma solicitação de um cliente para conectar um web service a loja dele, com o objetivo de verificar vagas existentes em pousadas, depois de agrupar os dados do pedido, enviar um formulário para os colaboradores dele e assim, efetuar a venda.
      A principio a loja funciona no modo orçamento apenas e por enquanto vai permanecer assim, minha solução foi criar um plugin para o Woocommerce que faz todo esse trabalho de forma externa, usando os ganchos do wordpress.
      A minha questão é se o cliente for colocar a loja no modo venda, como vou tratar a quantidade de variações?
      O Woocommerce é preparado pra isso ou seria melhor outro gerenciador de loja?
      OBS: Pra ficar mais fácil de entender a cliente é uma agência de viagens, como a decolar por exemplo. E portanto se conecta a outros bancos com uma infinidade de variáveis, restrições e métodos diferentes em cada atividade diferentes.
      OBS: Estou disposto a novas plataformas que suportem essa complexibilidade de dados, se houver algo PHP + MySQL é muito bem vindo kkkk
×

Informação importante

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