0

I would like to export my HTML table to Excel

My table looks like in the query here:

Export HTML form to Excel CSV not working with Element.append() method

I used the code from this website:

https://www.revisitclass.com/css/how-to-export-download-the-html-table-to-excel-using-javascript/

which is not working at all now, but it was working 2 days ago

My situation looks as follows:

  rows = [
      [column1,column2],
      [column1,column2],
      [column1,column2],
      [column1,column2],
      [column1,column2],
      [column1,column2]
    ] 


 function exportData(){

 var table = document.getElementById("opresults");

 var rows =[];

 for(var i=0,row; row = table.rows[i];i++){

 column1 = row.cells[0].innerText;
 column2 = row.cells[1].innerText;


 rows.push(
 [
   column1,
   column2
 ]
 );

  }
  csvContent = "data:text/csv;charset=utf-8,";

  rows.forEach(function(rowArray){
  row = rowArray.join(",");
  csvContent += row + "\r\n";
  });

    var encodedUri = encodeURI(csvContent);
    var link = document.createElement("a");
    link.setAttribute("href", encodedUri);
    link.setAttribute("download", "site_survey_form.csv");
    document.body.appendChild(link);

    link.click();
    }
    </script>

HTML

    <table id="opresults" class="outputtable"><p class="outputtablehead">Survey Form - output</p>
    <tr class="colname">
       <th class="question">Form question</th>
       <th  class="answer">Answer</th>
    </tr>
    <tr class="opcontent">
        <script>

            const resultsList = document.getElementById('opresults')
            const matches = document.querySelectorAll("fieldset");
    
            const innerBody = document.createElement('tbody')
            resultsList.append(innerBody);
    
            new URLSearchParams(window.location.search).forEach((value, name) => {
                    const row = document.createElement('tr');
                    const tdName = document.createElement('td');
                    const tdValue = document.createElement('td');
    
                    tdName.innerText = name;
                    tdValue.innerText = value;
    
                    row.append(tdName);
                    row.append(tdValue);
    
                    innerBody.append(row);
              })
             </script> 
           </tr>
       </table>


     <button class="excelsubmit" onclick="exportData()"><span class="glyphicon glyphicon-download"></span> Export form to Excel</button>

The button doesn't work at all. I am convinced, that somewhere is a silly mistake.

I've tried the example below:

Export html table data to Excel using JavaScript / JQuery is not working properly in chrome browser

which is great, but the file comes without the name. I need the export with name.

Geographos
  • 827
  • 2
  • 23
  • 57

0 Answers0