【问题标题】:i'm not able to export html elements from html to excel(.xlsm)我无法将 html 元素从 html 导出到 excel(.xlsm)
【发布时间】:2020-08-20 13:57:27
【问题描述】:

我想在 phpjavascript将 html 元素或表单导出到 excel(.xlsm) 模板,就像在这个 中一样图片文件。我搜索了可能的解决方案,但我得到的只是将表格数据导出到 Excel,我也可以使用它,但我需要输入字段,因为它们与 this 图片。

到目前为止,我有将表格导出到 excel 的用户基本代码,但是当我更改文件的扩展名时,excel 说它是一个损坏的文件,我使用的代码如下:

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+'.xlsm':'excel_data.xlsm';
    
    // 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();
    }
}

此代码返回带有或不带有自定义名称的 excel 文件。

【问题讨论】:

标签: javascript php excel templates


【解决方案1】:

您正在创建的是 TSV(在本例中为 SSV)- 制表符分隔值,它不是 xlsm。只需将其保存为 .tsv,excel 就会打开它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2020-02-18
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多