Advertisement
MizunoBrasil

Gerador dinâmico de tabela

Feb 11th, 2023
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
  7.   <title>Generador de Tabela</title>
  8. </head>
  9. <body>
  10.   <div class="container mt-5">
  11.     <h2 class="text-center mb-5">Gerador de Tabela</h2>
  12.     <p>Como funciona e como usar o gerador de tabela:</p>
  13.     <p>Temos um área de texto onde o usuário pode inserir os dados da tabela separados por vírgulas. A primeira linha será sempre o cabeçalho da tabela. (Cada linha corresponde à uma linha da tabela. Quando o botão "Gerar Tabela" é clicado, o JavaScript extrai os dados da área de texto e gera uma tabela HTML dinamicamente. <small><b>OBS: Ele aceita tag´s html dentro da linha (caso por exemplo queira inserir uma imagem ou um link.</b></small></p>
  14.     <p>Com a tabela completa gerada clique em Copiar HTML e ele irá copiar a tabela gerada (as tags com as informações) e você pode salvar sua página ou banco de dados.</p>
  15.     <div class="form-group">
  16.       <textarea class="form-control" rows="5" id="texto"></textarea>
  17.     </div>
  18.     <div class="text-center">
  19.       <button class="btn btn-primary mr-2" id="gerar">Gerar Tabela</button>
  20.       <button class="btn btn-success" id="copiar">Copiar HTML</button>
  21.     </div>
  22.     <br>
  23.     <div class="table-responsive">
  24.       <table class="table table-bordered" id="tabela">
  25.       </table>
  26.     </div>
  27.     <br>
  28.     <div class="form-group">
  29.       <textarea class="form-control" rows="5" id="html" readonly></textarea>
  30.     </div>
  31.   </div>
  32.   <script>
  33.     const gerar = document.querySelector("#gerar");
  34.     gerar.addEventListener("click", function() {
  35.       const texto = document.querySelector("#texto").value;
  36.       const linhas = texto.split("\n");
  37.       let conteudo = "<thead><tr>";
  38.       const primeiraLinha = linhas[0].split(",");
  39.       for (let i = 0; i < primeiraLinha.length; i++) {
  40.         conteudo += `<th>${primeiraLinha[i]}</th>`;
  41.       }
  42.       conteudo += "</tr></thead><tbody>";
  43.       for (let i = 1; i < linhas.length; i++) {
  44.         conteudo += "<tr>";
  45.         const valores = linhas[i].split(",");
  46.         for (let j = 0; j < valores.length; j++) {
  47.           conteudo += `<td>${valores[j]}</td>`;
  48.         }
  49.         conteudo += "</tr>";
  50.       }
  51.       conteudo += "</tbody>";
  52.       document.querySelector("#tabela").innerHTML = conteudo;
  53.       document.querySelector("#html").value = conteudo;
  54.     });
  55.     const copiar = document.querySelector("#copiar");
  56.     copiar.addEventListener("click", function() {
  57.           const html = document.querySelector("#html");
  58.       html.select();
  59.       document.execCommand("copy");
  60.     });
  61.   </script>
  62. </body>
  63. </html>
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement