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.

Author: Jordy van Eijk, 2009-06-10

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"');
 310
Author: jbochi,
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!

 142
Author: Karlis Rode,
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 
 35
Author: Siva Kranthi Kumar,
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
 5
Author: Divyans Mahansaria,
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.

 0
Author: be_es,
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