首页 > 解决方案 > 从 html 表创建 excel

问题描述

我不想抓取 HTML 表格并将其保存为 excel 文件。

我发现这篇文章:
https ://www.codexworld.com/export-html-table-data-to-excel-using-javascript/

轻松编码:

<button onclick="exportTableToExcel('tblData', 'members-data')">Export Table Data To Excel File</button>

function exportTableToExcel(tableID, filename = ''){
  var downloadLink;
  var dataType = 'application/vnd.ms-excel';
  var tableSelect = document.getElementById(tableID);
  var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20');

  // Specify file name
  filename = filename?filename+'.xls':'excel_data.xls';

  // Create download link element
  downloadLink = document.createElement("a");

  document.body.appendChild(downloadLink);

  if(navigator.msSaveOrOpenBlob){
    var blob = new Blob(['\ufeff', tableHTML], {
        type: dataType
    });
    navigator.msSaveOrOpenBlob( blob, filename);
  }else{
    // Create a link to the file
    downloadLink.href = 'data:' + dataType + ', ' + tableHTML;

    // Setting the file name
    downloadLink.download = filename;
    
    //triggering the function
    downloadLink.click();
  }
}

这段代码的问题是,当我在 Google 电子表格中打开文件时,我看到了 html 代码。当然,我希望它是一个没有 html 代码的 excel 表。问题是什么?

在此处输入图像描述

有一条评论:

//I had to encode # signs as well before the script would work with any non-Safari browser:
var tableHTML = tableSelect.outerHTML.replace(/ /g, ‘%20’).replace(/#/g, ‘%23’);

这不会解决html问题。

标签: javascriptexcel

解决方案


我的代码实际上适用于 Excel。

我在 Google Sheet 中进行测试,这就是为什么它不起作用。


推荐阅读