2016-07-14 162 views
22

我正在使用以下Javascript代码来生成将HTML表转换为电子表格的运行中的Excel。将HTML表导出为Excel - 不在Office 2010中打开

excel文件在Office 2010中未打开,显示空白。 Openoffice将打开相同的电子表格。可能是什么问题?当我在记事本中打开Excel这事关系到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"); 
      } 

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> 

enter image description here

+0

这是没有任何错误信息?试试View-Window-Unhide,https://support.office.com/zh-cn/article/Hide-or-show-worksheets-or-workbooks-69f2701a-21f5-4186-87d7-341a8cf53344#bmhideworkbookwindow –

+0

@AxelRichter是没有任何错误信息,我用excel的HTML更新了问题 – user580950

回答

43

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

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

要解决: 1)打开Excel转到文件选项

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

3)进入受保护的视图。有3个选项,表明均点击

我们取消读取第一个选项 - “启用源自Internet文件受保护的视图”

这固定的问题。也许不是最好的解决方案。我不知道为什么这个特殊的知识产权破坏了这一点,但我想也许文件格式不是这个事实,而且这个设置是相互冲突的。

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

是什么使我们事实上它不是文件的内容是我们注意到,如果我们将文件重新保存在记事本或记事本++中而不作任何改变,文件表现良好,所以Excel必须读取文件的某些属性而不是内容来阻止它。

+1

谢谢,花了一个小时试图找出它突然停止工作的原因 –

+0

谢谢!这帮了很多。 德国办公用户: Datei - > Optionen - >信任中心 - > Einstellungen献给DAS信任中心 - >GeschützteANSICHT - >哈肯entfernen被 “GeschützteANSICHT贝Dateien AUS DEM互联网aktivieren” –

+0

几个客户的电子邮件和一两个小时的工作,我发现这一点。非常感谢! –

3

要保存的HTML作为*.xls内容的文件。 Excel可以打开这一点,但会normaly显示一条警告消息:

你试图打开,“name.ext”的文件,是在一个不同的格式 不是由文件扩展名指定。在打开文件之前,确认文件不是 已损坏且来自受信任的来源。你想 现在打开文件吗?

如果不是发生时警告,文件没有被打开,那么也许

DWORD价值ExtensionHardeningHKEY_CURRENT_USER\Software\Microsoft\Office\<version number>\Excel\SecurityWindows Registry

这意味着被设定为2“检查文件扩展名和文件类型,如果不匹配,请不要打开文件。“

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

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

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

+1

如何摆脱警告信息? – user580950

+1

您是否阅读过链接的知识库网站?要摆脱警告消息,请将DWORD ExtensionHardening设置为0. –

1

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

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

卸载:

  • Windows更新KB3115262(EXCEL 2013)
  • Windows更新KB3115130(Excel 2010中)
  • Windows更新KB3115272(EXCEL六十四分之二千零十六位)

这个固定我们的问题,并且还会修复受这些更新影响的您和其他人。

3

而不是做的:

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

这样做:

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

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

+0

这起作用。它提供了文件到文件选项,因此比全局设置更安全。 –

+0

我没有安装办公室,我在Google文档或一个驱动器中打开我的文档:并且它们会生成错误,如果输出格式为HTML,则无关紧要。或者Base64 – deadManN

1

对于那些更安全的偏执狂,我看到Salesforce的站点的另一个答案,即应太 - https://success.salesforce.com/answers#!/feedtype=SINGLE_QUESTION_DETAIL&dc=All&criteria=BESTANSWERS&id=9063A000000iTIyQAM

基本上标志着你是从作为安全的下载网站。

我还没有尝试过自己

基本上打开网站,在那里你会被下载Excel文件在Internet Explorer

进入设置 Internet选项 安全 受信任的站点 站点 添加

这应该添加有问题的网站,然后你可以使用任何你想要的浏览器,例如火狐/铬等

1

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

我的修复方法是将内容处置从附加内容更改为内联。现在,用户可以获得旧的弹出式中心页面,而不是底部的弹出式中心页面,并且打开工作得很好。

+0

这应该是最佳答案,完美工作,不需要要求任何人更改任何信任设置。没有办法在公司环境中更改这些信任设置。 – cavej03

1

该问题的可能的解决方法:

解决方案1:

1)在开始菜单

2)导航到注册表类型regedit

在注册表: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六十四分之二千零十六位)

Windows更新KB3115262(EXCEL 2013)

Windows Update 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