【问题标题】:Export HTML Table to Excel- Doesn't Open in Office 2010将 HTML 表格导出到 Excel - 无法在 Office 2010 中打开
【发布时间】:2016-07-14 15:05:54
【问题描述】:

我正在使用以下 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");
            }

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

【问题讨论】:

  • 这是没有任何错误信息吗?尝试查看-窗口-取消隐藏,support.office.com/en-us/article/…
  • @AxelRichter 是的,没有任何错误消息,我用 excel 的 HTML 更新了问题

标签: javascript excel


【解决方案1】:

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

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

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

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

3) 转到受保护的视图。有3个选项显示都被点击了

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

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

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

导致我们发现它不是文件内容的原因是我们注意到,如果我们在记事本或记事本++中重新保存文件而不做任何更改,文件表现良好,因此 excel 必须读取文件的某些属性而不是内容阻止它。

【讨论】:

  • 谢谢,花了一个小时试图找出它突然停止工作的原因
  • 谢谢!这有很大帮助。德国办公室用户:Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center -> Geschützte Ansicht -> Haken entfernen bei "Geschützte Ansicht bei Dateien aus dem Internet aktivieren"
  • 几封客户电子邮件和几个小时的工作,我找到了这个。非常感谢!
【解决方案2】:

您正在将包含 HTML 内容的文件保存为 *.xls。 Excel 可以打开它,但通常会显示警告消息:

您尝试打开的文件“name.ext”的格式不同 比文件扩展名指定的。确认文件不是 在打开文件之前已损坏并且来自受信任的来源。你 要现在打开文件吗?

如果没有出现该警告并且文件没有打开,那么可能是

DWORDHKEY_CURRENT_USER\Software\Microsoft\Office\&lt;version number&gt;\Excel\Security 中的值ExtensionHardening 设置为Windows Registry 中的2

表示“检查文件扩展名和文件类型。如果不匹配,请不要打开文件。”

https://support.microsoft.com/en-us/kb/948615

也许您的管理员已通过组策略设置进行了设置。如果您在受管理的网络中,请询问您的管理员。

如果您是自己的管理员,则查找该注册表设置并将其更改为默认值 1

【讨论】:

  • 如何摆脱警告信息?
  • 您阅读过链接的知识库网站吗?要摆脱警告消息,请将 DWORD ExtensionHardening 设置为 0。
【解决方案3】:

而不是做:

我们取消选中第一个选项——“为来自 Internet 的文件启用受保护的视图”,这是不安全的

这样做:

转到文件的属性并单击取消阻止(如果您知道文件是安全的)。

图片:Go to Properties of the file and click Unblock

【讨论】:

  • 这行得通。它提供了文件到文件选项,因此比全局设置更安全。
  • 我没有安装办公室,我在谷歌文档或一个驱动器中打开我的文档:|它们会产生错误,无论输出格式是 HTML 还是 Base64
【解决方案4】:

我有类似的问题,内联网明智。当用户单击打开时,网格导出到 HTML Excel 突然停止工作。快速解决方法,保存并打开下拉选项或只是保存然后打开。

我的解决方法是将内容配置从附加更改为内联。现在用户得到的是旧的弹出中心页面,而不是底部的那个,打开就可以了。

【讨论】:

  • 这应该是最佳答案,完美运行,不需要要求任何人更改任何信任设置。这些信任设置不会在公司环境中改变。
【解决方案5】:

类似的问题,我的代码使用 StringWriter、HTMLTextWriter 和 RenderControl 从 GridView 转储到 XLS 文件。

由于我们的 ASP.NET 代码在公司 Intranet 上运行,我们卸载了整个公司的以下更新,而不是进入 100 台用户 PC 并更改其设置。

已卸载:

  • Windows 更新 KB3115262 (Excel 2013)
  • Windows 更新 KB3115130 (Excel 2010)
  • Windows 更新 KB3115272(Excel 2016/64 位)

这解决了我们的问题,也将解决您和受这些更新影响的其他人的问题。

【讨论】:

    【解决方案6】:

    对于那些更加安全偏执的人,我在 SalesForce 网站上看到了另一个答案,它应该也可以工作 - https://success.salesforce.com/answers#!/feedtype=SINGLE_QUESTION_DETAIL&dc=All&criteria=BESTANSWERS&id=9063A000000iTIyQAM

    基本上将您从中下载的网站标记为安全。

    我自己没试过

    基本上在 Internet Explorer 中打开您将下载 excel 文件的网站

    进入设置 互联网选项 安全 可信任的网站 网站 添加

    这应该在允许的情况下添加相关站点,然后您可以使用任何您想要的浏览器,例如火狐/铬等。

    【讨论】:

      【解决方案7】:

      问题的可能解决方法:

      解决方案 1:

      1) 在开始菜单中输入 Regedit

      2) 导航到注册表,

      在注册表中:HKEY_CURRENT_USER\Software\Microsoft\Office\\Excel\Security

      哪里=

       15.0 for Office 2013
       16.0 for Office 2016
       12.0 for Office 2010
      

      创建一个 DWORD(32 位)值并将其命名为:ExtensionHardening。 可能的值是:

      0: Do not check the file name extension and
         the file type, and bypass the function of the warning message.
      
      1: Check the file name extension and the file type.
         If they do not match, display the warning message.
      
      2: Check the file name extension and the file
         type. If they do not match, do not open the file.
      

      使用 1 作为值。

      解决方案 2:

      在Excel上右击-->属性-->解除阻止-->确定。

      UnblockExcel

      解决方案 3

      卸载更新:

      Windows 更新 KB3115272(Excel 2016/64 位)

      Windows 更新 KB3115262 (Excel 2013)

      Windows 更新 KB3115130 (Excel 2010)

      有关此问题的更多信息。请参阅下面的链接。 https://social.technet.microsoft.com/Forums/en-US/d2d84793-9920-45e3-baef-5027a4ac1ae0/kb3170008-for-office-2016-breaks-functionality-ms16088?forum=officeitpro

      【讨论】:

        【解决方案8】:

        Microsoft 于 8 月 9 日修补了 Excel 以恢复原始功能。滚动到 8 月 9 日在此线程中发布以获取更多信息:https://social.technet.microsoft.com/Forums/en-US/d2d84793-9920-45e3-baef-5027a4ac1ae0/kb3170008-for-office-2016-breaks-functionality-ms16088?forum=officeitpro

        更新 Excel 解决了我的问题。

        【讨论】:

          猜你喜欢
          • 2012-08-28
          • 1970-01-01
          • 1970-01-01
          • 2014-08-31
          • 1970-01-01
          • 1970-01-01
          • 2016-09-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多