Mengatur tipe mime untuk dokumen excel

361

MS Excel memiliki tipe MIME yang diamati berikut ini:

  • application/vnd.ms-excel (resmi)
  • 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)

Apakah ada satu tipe yang bisa digunakan untuk semua versi? Jika tidak, apakah kita perlu mengatur response.setContentType()dengan masing-masing tipe mime ini secara individual?

Selain itu, kami menggunakan streaming file dalam aplikasi kami untuk menampilkan dokumen (bukan hanya unggul - semua jenis dokumen). Dengan demikian, bagaimana kita dapat mempertahankan nama file jika pengguna memilih untuk menyimpan file - saat ini, nama servlet yang membuat file muncul sebagai nama default.

Subramanian
sumber
4
Lebih umum, cara terbaik untuk mencari tahu apa yang dipikirkan MS sendiri adalah jenis yang tepat adalah untuk menemukan sebuah kotak dengan versi terbaru diinstal dan lihat HKCR/.xls's Content Typenilai dalam registri.
Rup
3
"application / vnd.ms-office" adalah jenis mime lain untuk file XLS.
herrjeh42
application/vnd-xlsjuga berfungsi untuk .xlsfile.
mbomb007
Silakan merujuk ke posting ini untuk daftar lengkap tipe MIME dan ekstensi file excel terkait.
RBT

Jawaban:

344

Saya percaya tipe MIME standar untuk file Excel adalah application/vnd.ms-excel.

Mengenai nama dokumen, Anda harus mengatur header berikut dalam respons:

header('Content-Disposition: attachment; filename="name_of_excel_file.xls"');
jbochi
sumber
16
apa perbedaan antara application / msexcel dan application / vnd.ms-excel?
Thabiso Mofokeng
6
Jika Anda ingin menampilkan dokumen di dalam browser (jika didukung) maka Content-Disposition harus 'inline'. Lihat stackoverflow.com/questions/1395151/…
flash
2
Anda harus menghindari penggunaan Content-Disposition dalam HTTP, karena memiliki pertimbangan keamanan. Content-Disposition hanya untuk email. Lihat stackoverflow.com/questions/1012437 untuk info lebih lanjut.
Dzmitry Lazerka
Perhatikan bahwa untuk format file OpenXML Excel XLSX tipe Mime yang berbeda ditentukan, lihat daftar lengkap di tautan yang disediakan.
Oskar Berggren
@DzmitryLazerka apa alternatif "aman" untuk disposisi konten? Mengikuti tautan Anda, lalu tautan dalam jawaban itu, lalu tautan dalam dokumen itu, membawa kami ke sini: tools.ietf.org/html/rfc6266#section-4.3 . Sejauh yang saya tahu, masalah keamanan hanya melibatkan nama file yang disediakan oleh pengguna - jika mereka mengandung karakter non-latin, atau karakter yang tidak valid pada beberapa OS. Semua browser utama memiliki perlindungan terhadap masalah ini. Windows dan Mac juga menetapkan bendera pada file yang menunjukkan bahwa itu berasal dari internet, muncul peringatan ketika Anda mencoba membukanya.
Kip
170

Bangun utas lama di sini saya melihat, tapi saya merasakan dorongan untuk menambahkan format .xlsx "baru".

Menurut http://filext.com/file-extension/XLSX ekstensi untuk .xlsx adalah application/vnd.openxmlformats-officedocument.spreadsheetml.sheet. Mungkin ide yang baik untuk memasukkannya saat memeriksa jenis pantomim!

Karlis Rode
sumber
1
Inilah yang saya cari terima kasih, diperlukan untuk mendukung format terbaru dan juga sebelumnya.
Lee
42

Anda harus selalu menggunakan tipe MIME di bawah ini jika Anda ingin menayangkan file excel dalam format xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 
Siva Kranthi Kumar
sumber
13

Untuk .xls gunakan tipe konten berikut

application/vnd.ms-excel

Untuk versi Excel 2007 dan di atas .xlsx format file

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

Saya sedang mengatur tipe MIME dari .NET code seperti di bawah ini -

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

Aplikasi saya menghasilkan excel menggunakan OpenXML SDK. Jenis MIME ini berfungsi -

vnd.openxmlformats-officedocument.spreadsheetml.sheet
Divyans Mahansaria
sumber
2

Saya menggunakan EPPlus untuk menghasilkan file excel .xlsx (berbasis format OpenXML). Untuk mengirim file excel ini sebagai lampiran dalam email saya menggunakan tipe MIME berikut ini dan berfungsi baik dengan file yang dihasilkan EPPlus dan terbuka dengan benar dalam pratinjau klien email ms-outlook mail.

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);
}
Vishwajit G
sumber
0

Bagi siapa saja yang masih tersandung dengan ini setelah menggunakan semua jenis MIME yang mungkin tercantum dalam pertanyaan:

Saya telah menemukan bahwa iMacs cenderung juga melempar tipe MIME "text / xls" untuk file XLS Excel, semoga ini membantu.

be_es
sumber