我正在使用以下Javascript代码即时生成Excel,该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");
            }

当我在记事本中打开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>

javascript - 将HTML表格导出到Excel-在Office 2010中无法打开-LMLPHP

最佳答案

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

为解决此问题,我们让客户对其Excel进行了更改,以允许来自Internet的文件。

修理:
1)打开Excel转到“文件选项”

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

3)转到保护 View 。有3个选项显示全部被点击

我们取消选中第一个选项,即“为来自Internet的文件启用 protected View ”

这解决了问题。也许不是最好的解决方案。我不确定为什么这个特定的KB会破坏这一点,但是我认为也许事实并非如此,即文件格式不是预期的,并且此设置相互冲突。

在我没有安装此KB的计算机上,所有这些文件均已检查并且仍然可以正常工作(不是空白,但提示文件格式不同),并且我认为显示的是 protected View 。

导致我们发现其不是文件内容的原因是,如果我们在不进行任何更改的情况下将文件重新保存在记事本或notepad++中,就会注意到该文件运行良好,因此excel必须读取文件的某些属性而不是内容来阻止它。

10-07 19:14
查看更多