[excel] 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)

모든 버전에서 작동하는 유형이 하나 있습니까? 그렇지 않다면, response.setContentType()이러한 각 MIME 유형을 개별적 으로 설정해야 합니까?

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



답변

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

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

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


답변

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

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


답변

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

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet


답변

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

application/vnd.ms-excel

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

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet


답변

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

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

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

vnd.openxmlformats-officedocument.spreadsheetml.sheet


답변

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


답변

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

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