Excel 문서의 MIME 유형 설정


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 유형을 개별적 으로 설정해야 합니까?

또한 응용 프로그램에서 파일 스트리밍을 사용하여 문서뿐만 아니라 모든 유형의 문서를 표시합니다. 이렇게하면 사용자가 파일을 저장하기로 선택한 경우 파일 이름을 어떻게 유지할 수 있습니까? 현재 파일을 렌더링하는 서블릿의 이름이 기본 이름으로 나타납니다.


4
더 일반적으로, 가장 좋은 방법은 MS 자체는 올바른 유형의 최신 설치 버전과 표정으로 상자를 찾을 수 있습니다 생각 무엇인지 찾을 수 HKCR/.xlsContent Type레지스트리 값입니다.
Rup

3
"application / vnd.ms-office"는 XLS 파일의 또 다른 MIME 유형입니다.
herrjeh42

application/vnd-xls.xls파일 에서도 작동 합니다.
mbomb007

MIME 유형 및 관련 Excel 파일 확장자의 전체 목록은 게시물을 참조하십시오 .
RBT

답변:


344

Excel 파일 의 표준 MIME 유형application/vnd.ms-excel입니다.

문서 이름과 관련하여 응답에 다음 헤더를 설정해야합니다.

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

16
application / msexcel과 application / vnd.ms-excel의 차이점은 무엇입니까?
Thabiso Mofokeng

6
브라우저 내에서 문서를 표시하려면 (지원되는 경우) Content-Disposition은 '인라인'이어야합니다. 참조 stackoverflow.com/questions/1395151/...
플래시

2
HTTP에서 Content-Disposition을 사용하지 않아야하며 보안 고려 사항이 있습니다. 콘텐츠 처리는 이메일 전용입니다. 자세한 내용은 stackoverflow.com/questions/1012437 을 참조하십시오 .
Dzmitry Lazerka

OpenXML Excel XLSX 파일 형식의 경우 다른 Mime 유형이 정의되어 있습니다. 제공된 링크에서 전체 목록을 참조하십시오.
Oskar Berggren

@DzmitryLazerka 콘텐츠 처리의 "보안"대안은 무엇입니까? 귀하의 링크를 따라 가면 해당 답변의 링크와 해당 문서의 링크가 우리를 여기로 가져 옵니다 : tools.ietf.org/html/rfc6266#section-4.3 . 내가 알 수있는 한, 보안 문제는 비 라틴 문자 또는 일부 OS에서 유효하지 않은 문자를 포함하는 경우 사용자가 제공 한 파일 이름과 관련이 있습니다. 모든 주요 브라우저에는 이러한 문제에 대한 보호 장치가 있습니다. Windows와 Mac은 파일이 인터넷에서 온 것임을 나타내는 플래그를 파일에 설정하여 열려고 할 때 경고를 표시합니다.
Kip

170

여기에서 오래된 스레드를 깨우지 만 "새".xlsx 형식을 추가해야한다는 느낌이 들었습니다.

http://filext.com/file-extension/XLSX 에 따르면 .xlsx의 확장자는 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet입니다. MIME 유형을 확인할 때 포함시키는 것이 좋습니다.


1
이것은 내가 찾고있는 것입니다. 이전 형식뿐만 아니라 최신 형식을 지원해야했습니다.
Lee

42

xlsx 형식의 Excel 파일을 제공하려면 항상 MIME 유형 아래를 사용해야 합니다.

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 

13

들어 .XLS 다음과 같은 내용 유형을 사용

application/vnd.ms-excel

를 들어 엑셀 2007 버전 이상 .XLSX 파일 형식

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

8

아래와 같이 .NET 코드에서 MIME 유형을 설정하고있었습니다.

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

내 응용 프로그램은 OpenXML SDK를 사용하여 Excel을 생성합니다. 이 MIME 유형은 작동했습니다-

vnd.openxmlformats-officedocument.spreadsheetml.sheet

2

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);
}

0

질문에 나열된 가능한 모든 MIME 유형을 사용한 후에도 여전히 문제가있는 사람은 다음을 수행하십시오.

iMac이 XLS Excel 파일에 대해 "text / xls"의 MIME 유형을 던지는 경향이 있다는 것을 알았습니다. 이것이 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.