การตั้งค่าประเภท mime สำหรับเอกสาร excel


361

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 - เอกสารประเภทใด ๆ ) ในการทำเช่นนั้นเราจะเก็บชื่อไฟล์อย่างไรหากผู้ใช้เลือกที่จะบันทึกไฟล์ - ปัจจุบันชื่อของเซิร์ฟเล็ตที่แสดงผลไฟล์จะปรากฏเป็นชื่อเริ่มต้น


4
โดยทั่วไปวิธีที่ดีที่สุดที่จะหาสิ่ง MS ตัวเองคิดว่าเป็นชนิดที่ถูกต้องคือการหากล่องกับรุ่นล่าสุดที่ติดตั้งและดูที่HKCR/.xls's Content Typeคุ้มค่าในรีจิสทรี
Rupee

3
"application / vnd.ms-office" เป็นอีกประเภท mime สำหรับไฟล์ XLS
herrjeh42

application/vnd-xlsยังใช้งานได้กับ.xlsไฟล์
mbomb007

โปรดอ้างอิงโพสต์นี้สำหรับรายการประเภท MIME และนามสกุลไฟล์ excel ที่เกี่ยวข้อง
RBT

คำตอบ:


344

ผมเชื่อว่ามาตรฐานชนิดไมม์สำหรับ Excelapplication/vnd.ms-excelไฟล์

เกี่ยวกับชื่อของเอกสารคุณควรกำหนดหัวข้อต่อไปนี้ในการตอบสนอง:

header('Content-Disposition: attachment; filename="name_of_excel_file.xls"');

16
application / msexcel และ application / vnd.ms-excel ต่างกันอย่างไร
Thabiso Mofokeng

6
หากคุณต้องการแสดงเอกสารภายในเบราว์เซอร์ (หากรองรับ) การกำจัดเนื้อหาจะต้องเป็น 'อินไลน์' ดูstackoverflow.com/questions/1395151/…
แฟลช

2
คุณควรหลีกเลี่ยงการใช้ Content-Disposition ใน HTTP มันมีข้อควรพิจารณาด้านความปลอดภัย การกำจัดเนื้อหามีไว้สำหรับอีเมลเท่านั้น ดูstackoverflow.com/questions/1012437สำหรับข้อมูลเพิ่มเติม
Dzmitry Lazerka

โปรดทราบว่าสำหรับรูปแบบไฟล์ OpenXML Excel XLSX จะมีการกำหนดประเภท Mime ที่แตกต่างกันให้ดูรายการทั้งหมดที่ลิงก์ที่ให้ไว้
Oskar Berggren

@DzmitryLazerka ตัวเลือก "ปลอดภัย" สำหรับการจัดการเนื้อหาคืออะไร ต่อไปนี้การเชื่อมโยงของคุณแล้วการเชื่อมโยงในคำตอบว่าแล้วการเชื่อมโยงในเอกสารที่ได้รับเราไปที่นี่: tools.ietf.org/html/rfc6266#section-4.3 เท่าที่ฉันสามารถทราบได้ความกังวลด้านความปลอดภัยเกี่ยวข้องกับชื่อไฟล์ที่ผู้ใช้ให้ - หากมีอักขระที่ไม่ใช่ละตินหรือตัวอักษรที่ไม่ถูกต้องในระบบปฏิบัติการบางระบบ เบราว์เซอร์หลักทั้งหมดมีการป้องกันความกังวลเหล่านี้ Windows และ Mac ยังตั้งค่าสถานะในไฟล์ที่ระบุว่ามาจากอินเทอร์เน็ตโดยส่งคำเตือนเมื่อคุณพยายามเปิด
กีบ

170

ปลุกเธรดเก่าขึ้นที่นี่ฉันเห็น แต่ฉันรู้สึกอยากที่จะเพิ่มรูปแบบ "ใหม่" .xlsx

ตามhttp://filext.com/file-extension/XLSXส่วนขยายสำหรับ .xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheetคือ มันอาจจะเป็นความคิดที่ดีที่จะรวมไว้ในการตรวจสอบประเภท mime!


1
นี่คือสิ่งที่ฉันกำลังมองหาขอบคุณจำเป็นต้องสนับสนุนรูปแบบล่าสุดเช่นเดียวกับก่อนหน้านี้
Lee

42

คุณควรใช้ประเภท MIME ด้านล่างนี้เสมอหากคุณต้องการแสดงไฟล์ excel ในรูปแบบxlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 

13

สำหรับ. xls ให้ใช้ชนิดเนื้อหาต่อไปนี้

application/vnd.ms-excel

สำหรับเวอร์ชันExcel 2007และสูงกว่ารูปแบบไฟล์. xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

8

ฉันตั้งค่าประเภท MIME จากรหัส. NET ดังต่อไปนี้ -

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

แอปพลิเคชันของฉันสร้าง excel โดยใช้ OpenXML SDK ประเภท MIME นี้ทำงาน -

vnd.openxmlformats-officedocument.spreadsheetml.sheet

2

ฉันใช้EPPlusเพื่อสร้างไฟล์. xlsx (ใช้รูปแบบ OpenXML) สำหรับการส่งไฟล์ 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);
}

0

สำหรับทุกคนที่ยังคงสะดุดกับสิ่งนี้หลังจากใช้ประเภท MIME ที่เป็นไปได้ทั้งหมดที่ระบุไว้ในคำถาม:

ฉันได้พบว่า iMacs มักจะโยน "text / xls" ประเภท MIME สำหรับไฟล์ XLS Excel ด้วยหวังว่าสิ่งนี้จะช่วยได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.