2016-07-14 62 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