एक्सेल दस्तावेज़ के लिए माइम प्रकार सेट करना


361

एमएस एक्सेल में निम्नलिखित अवलोकन प्रकार हैं:

  • 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()व्यक्तिगत रूप से इनमें से प्रत्येक माइम प्रकार के साथ सेट करने की आवश्यकता है ?

इसके अलावा, हम अपने एप्लिकेशन में फ़ाइल स्ट्रीमिंग का उपयोग दस्तावेज़ प्रदर्शित करने के लिए करते हैं (न कि केवल एक्सेल - किसी भी प्रकार का दस्तावेज़)। ऐसा करने पर, हम फ़ाइल नाम को कैसे बनाए रख सकते हैं यदि उपयोगकर्ता फ़ाइल को सहेजने का विरोध करता है - वर्तमान में, फ़ाइल को रेंडर करने वाले सर्वलेट का नाम डिफ़ॉल्ट नाम के रूप में प्रकट होता है।


4
आम तौर पर, सबसे अच्छा तरीका पता लगाने के लिए क्या एमएस खुद को लगता है कि सही प्रकार से नवीनतम संस्करण स्थापित और देखो के साथ एक बॉक्स मिल रहा है है HKCR/.xlsकी Content Typeरजिस्ट्री में मूल्य।
जू

3
"एप्लिकेशन / vnd.ms-office" XLS फ़ाइलों के लिए एक और माइम प्रकार है।
herrjeh42

application/vnd-xls.xlsफ़ाइलों के लिए भी काम करता है ।
mbomb007

कृपया MIME प्रकार और संबंधित एक्सेल फ़ाइल एक्सटेंशन की पूरी सूची के लिए इस पोस्ट को देखें ।
RBT

जवाबों:


344

मेरा मानना ​​है कि Excel फ़ाइलों के लिए मानक MIME प्रकार है application/vnd.ms-excel

दस्तावेज़ के नाम के बारे में, आपको प्रतिक्रिया में निम्नलिखित हेडर सेट करना चाहिए:

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

16
आवेदन / msexcel और आवेदन / vnd.ms-excel के बीच अंतर क्या है?
थिबिसो मोफोकेंग

6
यदि आप दस्तावेज़ को ब्राउज़र के भीतर प्रदर्शित करना चाहते हैं (यदि समर्थित है) तो सामग्री-विवाद के लिए 'इनलाइन' होना आवश्यक है। देखें stackoverflow.com/questions/1395151/…
फ्लैश

2
आपको HTTP में Content-Disposition का उपयोग करने से बचना चाहिए, इसमें सुरक्षा के विचार हैं। सामग्री-विवाद केवल ईमेल के लिए है। अधिक जानकारी के लिए stackoverflow.com/questions/1012437 देखें ।
द्ज़मिट्री लेज़रका

ध्यान दें कि OpenXML एक्सेल XLSX फ़ाइल प्रारूप के लिए एक अलग माइम प्रकार परिभाषित किया गया है, दिए गए लिंक पर पूरी सूची देखें।
ऑस्कर बर्गग्रेन

@DzmitryLazerka सामग्री-निपटान के लिए "सुरक्षित" विकल्प क्या है? आपके लिंक के बाद, फिर उस उत्तर का लिंक, फिर उस दस्तावेज़ का लिंक, हमें यहाँ मिलता है: tools.ietf.org/html/rfc6266#section-4.3 । जहां तक ​​मैं बता सकता हूं, सुरक्षा चिंता सिर्फ उपयोगकर्ताओं द्वारा प्रदान किए गए फ़ाइलनामों को शामिल करना है - यदि उनमें गैर-लैटिन वर्ण हैं, या कुछ ओएस पर अमान्य वर्ण हैं। सभी प्रमुख ब्राउज़रों के पास इन चिंताओं के खिलाफ सुरक्षा उपाय हैं। विंडोज और मैक ने एक फाइल पर एक झंडा भी लगाया जो यह दर्शाता है कि यह इंटरनेट से आया है, जब आप इसे खोलने की कोशिश करते हैं तो एक चेतावनी को पॉप अप करते हैं।
किप

170

एक पुराने सूत्र को जागते हुए मैं यहां देखता हूं, लेकिन मैंने "नया" .xlsx प्रारूप जोड़ने का आग्रह किया।

Http://filext.com/file-extension/XLSX के अनुसार .xlsx का विस्तार है application/vnd.openxmlformats-officedocument.spreadsheetml.sheet। माइम प्रकारों की जांच करते समय इसे शामिल करना एक अच्छा विचार हो सकता है!


1
यह वह था जो मैं धन्यवाद के लिए देख रहा था, नवीनतम प्रारूप के साथ-साथ पिछले का समर्थन करने की आवश्यकता थी।
ली

42

यदि आप xlsx प्रारूप में एक्सेल फ़ाइल परोसना चाहते हैं तो आपको हमेशा MIME प्रकार का उपयोग करना चाहिए

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 

13

के लिए .xls निम्नलिखित सामग्री प्रकार का उपयोग

application/vnd.ms-excel

के लिए Excel 2007 संस्करण और इसके बाद के संस्करण .xlsx फ़ाइलें प्रारूप

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

8

मैं नीचे के रूप में .NET कोड से MIME प्रकार सेट कर रहा था -

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

मेरा आवेदन OpenXML SDK का उपयोग कर उत्कृष्टता प्राप्त करता है। इस MIME प्रकार ने काम किया -

vnd.openxmlformats-officedocument.spreadsheetml.sheet

2

मैं .xlsx (OpenXML प्रारूप आधारित) एक्सेल फ़ाइल जनरेट करने के लिए EPPlus का उपयोग कर रहा हूं । ईमेल में इस एक्सेल फ़ाइल को अटैचमेंट के रूप में भेजने के लिए मैं निम्नलिखित 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 XLS एक्सेल फाइल के लिए MIME प्रकार का "टेक्स्ट / xls" भी फेंकते हैं, आशा है कि यह मदद करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.