Что такое правильный тип содержимого для файлов Excel?

Я хочу, чтобы файлы Excel на веб-сайте открывались в Excel при нажатии, а не сохранялись на рабочем столе или открывались встроенными в браузер и т. Д. Теперь, очевидно, все зависит от того, как все настроено для каждого пользователя, но что лучше Content-Type и другие настройки, чтобы добиться именно этого в большинстве случаев?


person taw    schedule 30.05.2010    source источник
comment
Хотя это дубликат, я думаю, что его следует хранить как указатель на связанный дубликат. Названия достаточно разные.   -  person John Saunders    schedule 06.11.2014


Ответы (3)


Для файлов BIFF .xls

application/vnd.ms-excel

Для файлов Excel2007 и выше .xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
person Mark Baker    schedule 30.05.2010
comment
Это не работает для меня при использовании IE9. Хром, Опера, Сафари, Фаерфокс - без проблем. Но IE не распознает Content-type, и я проверил с помощью отладчика в IE, чтобы подтвердить, что Content-type равен application/vnd.ms-excel. Я также тестировал заголовки в нижнем/верхнем регистре. Кто-нибудь испытал это? - person luttkens; 24.09.2013
comment
@luttkens - это будет проблема с комбинацией заголовков, которые вы отправляете, они по-прежнему являются допустимыми типами контента для файлов Excel. - person Mark Baker; 24.09.2013
comment
@MarkBaker Ты прав. Когда я удалил Content-Disposition: attachment; filename='foo.xls', это сработало. Но это не делает меня как IE... - person luttkens; 24.09.2013
comment
Для всех, кто интересуется: удалив одинарные кавычки вокруг foo.xls из Content-Disposition, даже IE распознает, как его открыть. - person luttkens; 24.09.2013
comment
Здравствуйте, знаете ли вы Content-Type файлов .xlsx, созданных Google Docs? Я пробовал ваш ответ, но не повезло. - person pikachu0; 17.03.2014
comment
У меня была проблема, из-за которой я не мог открыть этот тип файла после его загрузки программно. По сути, он правильно сохранит файл, но когда я сделал response.Transmitfile(..filepath..), где filepath был законным путем к неповрежденному файлу excel, он вернул поврежденный файл. Изменение response.ContentType с простого/текстового на application/nvd.ms-excel исправило это. - person Lukas; 19.03.2014
comment
.docx хуже application/vnd.openxmlformats-officedocument.wordprocessingml.document - person mkz; 15.06.2014
comment
что такое тип контента для файлов Office 365 excel? - person GANI; 23.09.2014
comment
@ user1016740 Файлы Office 365 представляют собой файлы формата OfficeOpenXML .xlsx, поэтому application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - person Mark Baker; 23.09.2014
comment
(+1) В системе Mac, если вы получаете дополнительный (.xls), то добавление второго типа контента (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) исправит его. - person Confused; 27.01.2016
comment
@Confused - второй тип контента просто перезапишет первый, у вас может быть только один заголовок типа контента - person Mark Baker; 27.01.2016
comment
@MarkBaker Я имею в виду вторую строку (т.е. application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) приведенного выше ответа, а не первую (application/vnd.ms-excel). - person Confused; 27.01.2016
comment
Спасибо за хороший ответ, кстати :-) - person Confused; 27.01.2016
comment
Почему они используют такую ​​уродливую вещь, как это? - person Hinrich; 14.03.2016
comment
@Hinrich - потому что эти уродливые вещи говорят браузеру, как обрабатывать данные, которые вы ему отправляете. - person Mark Baker; 14.03.2016
comment
Для тех, кто невежественен, как я, и не совсем уверен, что такое BIFF, может помочь следующее: XLS — это расширение файла электронной таблицы Microsoft Excel. Он создан в версиях Excel до 2007 года. Это двоичный формат, основанный на формате двоичного файла обмена (BIFF), поэтому он хранит информацию в двоичном формате. - person Steve Chambers; 31.10.2016
comment
@MarkBaker, а как ты это понял? - person Black; 21.11.2019

application/vnd.ms-excel
person miku    schedule 30.05.2010
comment
Форматы файлов, перечисленные выше. Тип содержимого http см. в разделе Типы MIME формата системных файлов Office< /а> - person Nelda.techspiress; 26.05.2017

Имейте в виду, что file.getContentType может также выводить application/octet-stream вместо необходимого application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, когда вы пытаетесь загрузить файл, который уже открыт.

person DiTap    schedule 26.02.2014