2011-05-18 88 views
9

在Web應用程序中,我使用從Excel 2010創建的XSL模板生成電子表格XML。我希望默認情況下在Excel中打開此電子表格XML。所以,我添加了以下屬性在Excel中默認打開電子表格xml

Response.ContentType = "application/vnd.ms-excel"; 
Response.AddHeader("Content-Disposition", "Attachment;Filename=export.xls"); 
Response.Charset = ""; 

這將打開在Excel的文件中,但由於擴展硬化的Excel 2010的功能,會顯示提示 -

的文件,你正在嘗試打開 '導出[1] .xls',與 文件擴展名指定的格式不同 。在打開文件之前,驗證文件是否爲 已損壞,並且來自信任的源 。你想要 現在打開文件嗎?

如果我點擊是,它打開罰款。但是,有沒有辦法可以完全跳過提示?我已閱讀有關注冊表更改以禁用用戶計算機中的提示。但是,這是一個公共網站,該解決方案不起作用。

我可以將附件文件名設置爲export.xml。如果我保存並在Excel中打開,則沒有提示。但默認情況下,XML不會在Excel中打開。

任何想法,在Excel中打開電子表格XML,沒有提示?

+0

如果您指定「xlsx」作爲類型,是否有任何更改? – 2011-05-18 09:14:48

+0

@Mike:更糟的是,Excel不會提供打開的選項。它只顯示文件擴展名無效的提示,只有一個OK按鈕。可能值得一提的是,我將XSL模板保存爲「XML Spreadsheet 2003」類型。 – itsbalur 2011-05-18 09:44:16

+0

xlsx是否不是壓縮的xml?你試過壓縮你的結果了嗎? – pintxo 2011-05-18 09:50:49

回答

6

這個博客幫我解決了我的問題。

http://www.shareyourwork.org/roller/ralphsjavablog/entry/generating_excel_sheets_with_xslt

關鍵是要在你的方式XSL模板添加此處理指令在上述文章中提到

<xsl:processing-instruction name="mso-application"> 
<xsl:text>progid="Excel.Sheet"</xsl:text> 
</xsl:processing-instruction> 

通過這樣做,您可以指定文件擴展名爲.xml,但默認情況下它將在Excel中打開。

+3

現在鏈接已死。似乎已移到此處:http://www-02.imixs.com/roller/ralphsjavablog/entry/generating_excel_sheets_with_xslt – technomalogical 2012-05-14 22:09:39