Open XML을 사용하여 MVC에서 Excel 문서를 생성 중입니다.OpenXML을 사용하는 MVC 컨트롤러에서 통합 문서를 읽기 전용으로 만들기
public ActionResult ExcelReport()
{
var custId = 1234; //ToDo get from session when it is set
using (MemoryStream mem = new MemoryStream())
{
ExcelReportGenerator excel = new ExcelReportGenerator();
excel.CreateExcelDoc(mem);
var reportName = string.Format("MyReport_{0}.xlsx", custId);
return File(mem.ToArray(), System.Net.Mime.MediaTypeNames.Application.Octet, reportName);
}
}
내 CreateExcelDoc 방법은 다음과 같습니다 :
코드는 다음과 같습니다 예상대로 엑셀 시트를 다운로드하는 create 메소드와
public void CreateExcelDoc(MemoryStream mem)
{
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(mem, SpreadsheetDocumentType.Workbook);
//SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(mem, false);
//Code removed for brevity
worksheetPart.Worksheet.Save();
spreadsheetDocument.Close();
}
. 그러나, 나는 통합 문서가 읽기 전용 그래서 MEM 스트림을 통과하는 .Open 방법을 시도하고 있었다 만들고 싶어하고 isEditable는 false로 설정하지만 오류 Exception Details: System.IO.FileFormatException: Archive file cannot be size 0.
이것이 정확히 내가 필요한 것입니다. - 감사합니다 :) –