ASP.Net에서 NPOI를 사용하여 Excel 문서에 저장 내용을 저장하고 방금 버전 2 이상으로 이동했습니다. xlsx에 쓰기가 잘되었지만 xlsx로 전환하는 것은 좀 더 어려웠습니다. 나의 새롭고 향상된 코드는 많은 NUL 문자를 출력 파일에 추가하고있다.Response.OutputStream에 쓰기시 손상된 XLSX 파일 가져 오기
그 결과 "일부 콘텐츠에 문제가 있습니다"라는 오류 메시지가 나타나며 복구를 시도합니까?
다음은 내 16 진수 편집기에서 만든 xlsx 파일의 그림입니다. BadXlsxHexImage 00 초는 여러 페이지로 이어집니다. 나는 파일이 오류없이 열릴 때까지 문자 그대로 편집기에서 삭제했다.
왜이 코드가이 파일에 많은 NUL을 추가합니까 ??
using (var exportData = new MemoryStream())
{
workbook.Write(exportData);
byte[] buf = exportData.GetBuffer();
string saveAsFileName = sFileName + ".xlsx";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}; size={1}", saveAsFileName, buf.Length.ToString()));
Response.Clear();
Response.OutputStream.Write(buf, 0, buf.Length);
exportData.Close();
Response.BufferOutput = true;
Response.Flush();
Response.Close();
}
은 (이미
Response.Close
대신에
OutputStream.Write
,
Response.End
대신에
BinaryWrite
을 시도하고, 버퍼의 길이
Content-Length
을 설정했습니다. 또한이 중 어느 것도 XLS에 쓰기 문제가 없었다.)
가 다른 lib 디렉토리를 사용하려면, 여기에 내가 XLSX 만들 생각하는 가장 중 하나입니다 : 약 https://epplus.codeplex.com/ – andrefadila