OpenXML 및 MemoryStream을 사용하여 Excel 파일을 내보내고 파일 경로에 추가 문자를 추가하는 경우가 있습니다. 매번 발생하지는 않습니다. 내가 처음로드 할 때 잘 동작하는 것처럼 보이지만 실행 후 추가 문자를 추가하기 시작합니다. 내가 메모리 누수 또는 버퍼 문제가 있다고 가정하지만, 그것을 해결하기에 충분하지 않습니다.C# 메모리 스트림/OpenXML에서 파일 이름에 여분의 문자를 추가하는 경우가 있음
내 코드는 다음과 같습니다
는using (var stream = new MemoryStream())
{
report.CreatePackage(stream);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Report_" + DateTime.Now.ToShortDateString() + ".xlsx");
stream.Position = 0;
stream.CopyTo(System.Web.HttpContext.Current.Response.OutputStream);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.Close();
System.Web.HttpContext.Current.Response.End();
}
이 파일 경로에서 다음과 같이 보일 것입니다 : Report_09_14_2016CAOFMLJL.xlsx를 대신 보고서 및 날짜의.
도움을 주시면 감사하겠습니다.
'Response.Clear()'가 헤더를 지우지 않는다는 것을 알고 있습니까? 다른 방법으로 : 적절한 장소에서'Response.ClearHeaders()'를 호출하면 행복한 목적을 향한 어떤 것도 변화합니까? – grek40
처음 실행하면 여분의 문자가 추가되지만 이후의 모든 문자는 계속 추가됩니다. 머리글인지 또는 왜 처음에는 작동하지 않는지 확실하지 않습니다. – JRich
코드가 문자열과 일치하지 않습니다. 당신은''.xlsx "'를 추가하고 있지만 결과에''.XLSX ''확장자가 있습니다. (그리고이 차이는''CAOFMLJL.XLSX"'가 추가 된 이유 일 것입니다). – Sinatr