Ustawianie typu mime dla dokumentu excel
MS Excel ma następujące zaobserwowane typy MIME:
-
application/vnd.ms-excel
(oficjalny) 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)
Czy istnieje jeden typ, który działałby dla wszystkich wersji? Jeśli nie, Czy musimy ustawić response.setContentType()
z każdym z tych typów mime indywidualnie?
Ponadto używamy streamingu plików w naszej aplikacji do wyświetlania dokumentów (nie tylko excel - dowolny rodzaj dokumentu). W ten sposób, jak możemy zachować nazwę pliku, jeśli użytkownik zdecyduje się zapisać plik - obecnie nazwa serwletu, który renderuje plik, pojawia się jako nazwa domyślna.
5 answers
Wydaje mi się, że standardowym typem MIME dla plików Excel jest application/vnd.ms-excel
.
Jeśli chodzi o nazwę dokumentu, należy ustawić następujący nagłówek w odpowiedzi:
header('Content-Disposition: attachment; filename="name_of_excel_file.xls"');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 22:28:41
Budząc Stary wątek tutaj widzę, ale poczułem potrzebę dodania "nowego".format xlsx.
Według http://filext.com/file-extension/XLSX rozszerzenie dla .xlsx To application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
. Dobrym pomysłem może być uwzględnienie go podczas sprawdzania typów mime!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 22:27:45
Powinieneś zawsze używać poniższego typu MIME, jeśli chcesz obsługiwać plik excel w formacie XLSX
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-01 05:26:31
Ustawiałem typ MIME z kodu. NET jak poniżej -
File(generatedFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
Moja aplikacja generuje Excela przy użyciu OPENXML SDK. Ten typ MIME zadziałał -
vnd.openxmlformats-officedocument.spreadsheetml.sheet
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-23 11:05:46
Dla każdego, kto nadal potyka się z tym po użyciu wszystkich możliwych typów MIME wymienionych w pytaniu:
Odkryłem, że imaki mają tendencję do rzucania typu MIME "text / xls" dla plików XLS Excel, mam nadzieję, że to pomoże.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-25 18:58:17