使用 Javascript 将 HTML 表格下载到 Excel

发布于 2025-01-12 13:11:09 字数 975 浏览 1 评论 0原文

在我的 Flask 应用程序中,我创建了一个按钮来将 HTML 表的内容提取到 Excel 文件中。我使用 Javascript 从界面中提取 Excel 格式的 HTML 表格内容。

不幸的是,当我运行下面的代码时,下载的 Excel 文件是空的。您能帮助纠正我下面的代码吗?谢谢。

function exportTableToExcel(filename = ''){
let downloadLink;
let dataType = 'application/vnd.ms-excel';
let tableSelect = document.getElementsByTagName("table");
let tableHTML = tableSelect[0].outerHTML.replace(/ /g, '%20');

// Specify file name
filename = 'All_Issues.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();
}
}

In my Flask application, I created a button to extract the content of an HTML table into an Excel file. I used Javascript to extract from my interface the content of my HTML table in Excel format.

Unfortunately, when I run the code below, the downloaded Excel file is empty. Could you please help to correct my code below. Thanks.

function exportTableToExcel(filename = ''){
let downloadLink;
let dataType = 'application/vnd.ms-excel';
let tableSelect = document.getElementsByTagName("table");
let tableHTML = tableSelect[0].outerHTML.replace(/ /g, '%20');

// Specify file name
filename = 'All_Issues.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();
}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灰色世界里的红玫瑰 2025-01-19 13:11:10

getElementsByTagName() 函数返回一个数组,因此您必须获取第一个元素。

let tableHTML = tableSelect[0].outerHTML.replace(/ /g, '%20');

The getElementsByTagName() function returns an array so you have to get the first element.

let tableHTML = tableSelect[0].outerHTML.replace(/ /g, '%20');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文