将HTML表导出到Excel-不在Office 2010中打开

use*_*950 22 javascript excel

我正在使用以下Javascript代码动态生成excel,它将HTML表格转换为电子表格.

excel文件无法在Office 2010中打开,显示为空白.Openoffice将打开相同的电子表格.可能是什么问题?这是与此相关的事吗?encoding

function ExcelReport() {
              var tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">';
              tab_text = tab_text + '<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>';
              tab_text = tab_text + '<x:Name>Test Sheet</x:Name>';
              tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>';
              tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';      
              tab_text = tab_text + "<table>";
              var headingTable = $('#h_tbl').clone();
              tab_text = tab_text + headingTable.html();
              tab_text = tab_text + '</table>';
              $('.c_tbl').each(function( index ) {
                    tab_text = tab_text + "<table>";
                    tab_text = tab_text + "<tr><td></td></tr><tr><td></td></tr>";
                    tab_text = tab_text + '</table>';
                    tab_text = tab_text + "<table>";
                    var exportTable = $(this).clone();
                    tab_text = tab_text + exportTable.html();
                    tab_text = tab_text + '</table>';
              });
              tab_text = tab_text + '</body></html>';
              var fileName = name + '.xls';
              var blob = new Blob([tab_text], { type: "application/vnd.ms-excel;charset=utf-8" })
              window.saveAs(blob, wo_var + ".xls");
            }
Run Code Online (Sandbox Code Playgroud)

当我在记事本中打开excel时,html代码如下所示

<html xmlns:x="urn:schemas-microsoft-com:office:excel"><head><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>
        <tbody><tr><td>abc:</td></tr></tbody></table></body></html>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

LR1*_*567 43

我们遇到了同样的问题,客户抱怨太多了.我们将其追溯到Excel OFffice Security补丁KB3115262 - https://support.microsoft.com/en-us/kb/3115262 2016年7月12日发布

为了解决这个问题,我们让客户在Excel中进行更改以允许来自互联网的文件.

要修复:1)打开Excel转到文件选项

2)单击信任中心 - >信任中心设置

3)转到受保护的视图.有3个选项显示全部被点击

我们取消选中第一个选项 - "为来自Internet的文件启用受保护的视图"

这解决了这个问题.也许不是最好的解决方案.我不确定为什么这个特殊的KB打破了这个,但我想也许事实上文件格式是不期望的,这个设置是相互冲突的.

在我没有安装此KB的计算机上,所有这些都被检查,它仍然可以正常工作(不是空白,但提示文件格式不同),我想在受保护的视图中显示.

是什么让我们知道它不是文件的内容我们注意到如果我们在记事本或记事本++中重新保存文件而不做任何更改,文件表现得很好,所以excel必须读取文件的某些属性而不是内容来阻止它.