Ответ 1
Я считаю, что стандартный тип MIME для файлов Excel - application/vnd.ms-excel
.
Что касается имени документа, вы должны установить в ответ следующий заголовок:
header('Content-Disposition: attachment; filename="name_of_excel_file.xls"');
MS Excel имеет следующие наблюдаемые типы MIME:
application/vnd.ms-excel
(официальный)application/msexcel
application/x-msexcel
application/x-ms-excel
application/x-excel
application/x-dos_ms_excel
application/xls
application/x-xls
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
(xlsx)Есть ли какой-либо тип, который будет работать для всех версий? Если нет, нам нужно установить response.setContentType()
с каждым из этих типов mime индивидуально?
Кроме того, мы используем потоковое воспроизведение файлов в нашем приложении для отображения документа (а не только Excel - любого типа документа). При этом, как мы можем сохранить имя файла, если пользователь хочет сохранить файл - в настоящее время имя сервлета, который отображает файл, отображается как имя по умолчанию.
Я считаю, что стандартный тип MIME для файлов Excel - application/vnd.ms-excel
.
Что касается имени документа, вы должны установить в ответ следующий заголовок:
header('Content-Disposition: attachment; filename="name_of_excel_file.xls"');
Пробуждение старого потока здесь я вижу, но я почувствовал желание добавить "новый" формат .xlsx.
В соответствии с http://filext.com/file-extension/XLSX расширение для .xlsx равно application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
. Это может быть хорошей идеей включить его при проверке типов mime!
Вы всегда должны использовать ниже тип MIME, если хотите использовать файл excel в формате xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Я установил MIME-тип из .NET-кода, как показано ниже -
File(generatedFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
Мое приложение генерирует excel с помощью OpenXML SDK. Этот тип MIME работал -
vnd.openxmlformats-officedocument.spreadsheetml.sheet
Для тех, кто все еще спотыкается об этом после использования всех возможных типов MIME, перечисленных в вопросе:
Я обнаружил, что iMacs также генерируют MIME-тип "text/xls" для файлов Excel XLS, надеюсь, что это поможет.