Открыть электронную таблицу XML в Excel по умолчанию - PullRequest
9 голосов
/ 18 мая 2011

В веб-приложении я генерирую XML-таблицу, используя шаблон XSL, созданный в Excel 2010. Я хочу, чтобы этот XML-файл таблицы открывался в Excel по умолчанию. Итак, я добавляю следующие свойства к ответу

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

При этом открывается файл в Excel, но из-за функции усиления расширений в Excel 2010 отображается приглашение -

Файл, который вы пытаетесь открыть, 'export [1] .xls', находится в другом формат, указанный в файле расширение. Убедитесь, что файл не поврежден и из доверенного источника перед открытием файла. Вы хотите открыть файл сейчас?

Если я нажму на да, он откроется нормально. Но есть ли способ, которым подсказка может быть полностью пропущена? Я прочитал об изменениях в реестре, чтобы отключить запрос на компьютере пользователя. Но это общедоступный веб-сайт, и это решение не будет работать.

Я могу установить имя файла вложения на export.xml. Если я сохраню его и открою в Excel, подсказка не появится. Но XML не будет открываться в Excel по умолчанию.

Есть идеи, как открыть электронную таблицу xml в Excel без приглашения?

1 Ответ

6 голосов
/ 19 мая 2011

Этот блог помог мне обойти мою проблему.

https://ralph.blog.imixs.com/2013/02/16/how-to-generate-a-excel-sheet-with-xslt/

Хитрость заключается в том, чтобы добавить эту инструкцию по обработке в шаблон XSL способом, упомянутым в приведенном выше сообщении

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

Сделав это, вы можете указать расширение файла как .xml, но оно откроется в Excel по умолчанию.

...