web-dev-qa-db-ja.com

Excel文書のMIMEタイプを設定する

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)

すべてのバージョンで機能するタイプはありますか?そうでない場合は、これらのMIMEタイプのそれぞれにresponse.setContentType()を個別に設定する必要がありますか?

また、アプリケーションでファイルストリーミングを使用してドキュメントを表示します(Excelだけでなくあらゆるタイプのドキュメント)。その際、ユーザーがファイルを保存することを選択した場合にファイル名を保持する方法 - 現在、ファイルをレンダリングするサーブレットの名前がデフォルトの名前として表示されます。

332
Subramanian

Excelの標準的な MIMEタイプapplication/vnd.ms-Excelであると思います。

文書の名前に関しては、応答に次のヘッダを設定する必要があります。

header('Content-Disposition: attachment; filename="name_of_Excel_file.xls"');
322
jbochi

ここで古いスレッドを目覚めさせますが、私は「新しい」.xlsxフォーマットを追加することを強く望みました。

http://filext.com/file-extension/XLSX によると、.xlsxの拡張子はapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetです。 MIMEタイプをチェックするときに含めることをお勧めします。

152
Karlis Rode

Excelファイルをxlsxの形式で提供する場合は、常にMIMEタイプ以下を使用する必要があります。

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 
37

私は以下のように.NETコードからMIMEタイプを設定していました -

File(generatedFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")

私のアプリケーションはOpenXML SDKを使ってExcelを生成します。このMIMEタイプはうまくいきました -

vnd.openxmlformats-officedocument.spreadsheetml.sheet
6

。xlsには、次のcontent-typeを使用してください。

application/vnd.ms-Excel

Excel 2007バージョン以上。xlsxファイル形式

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
2
Dulith De Costa

私は EPPlus を使って.xlsx(OpenXMLフォーマットベース)のExcelファイルを生成しています。このExcelファイルを電子メールの添付ファイルとして送信するには、次のMIMEタイプを使用します。これはEPPlusで生成されたファイルで正常に機能し、ms-Outlookメールクライアントプレビューで正しく開きます。

string mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
System.Net.Mime.ContentType contentType = null;
if (mimeType?.Length > 0)
{
    contentType = new System.Net.Mime.ContentType(mimeType);
}
1
Vishwajit G

質問にリストされている可能性のあるすべてのMIMEタイプを使用した後でまだこれに悩まされている人のために:

私は、iMacがXLSのExcelファイルに対しても "text/xls"のMIMEタイプを投げる傾向があることを発見しました。

0
be_es