2017-09-05 5 views
1

최근에 내가Worksbook는 스트림이

private Stream GetWorkbook() 
{ 
    // processing workbook here 
    // ... 
    // saving to stream 
    return workbook.SaveToStream(); 
} 

private void Save() 
{ 
    using (stream = GetWorkbook()) 
     using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write)) 
     { 
      stream.CopyTo(fileStream); 
     } 
} 

로 스트리밍 할 Aspose.Cells.Workbook을 구하려고했다 고장으로 저장하지만 생성 된 .XLSX 파일을 열려고 시도하고 때 Excel에서 나에게 파일이 없다는 오류를 보냅니다 타락했다.

+0

XLSX 파일의 파일 크기는 무엇입니까? xlsx 파일의 이름을'a.zip'으로 변경하고여십시오. 유효한 zip 파일입니까? – mjwills

+0

@mjwills 아니, 그렇지 않아. 실제 템플릿 파일 크기는 120KB이고 생성 파일은 1KB입니다. – Max

+0

'CopyTo' 도움 전에'stream.Seek (0, SeekOrigin.Begin);'을 사용하고 있습니까? – mjwills

답변

1

SaveToStream() 메서드는 통합 문서를 XLS 형식에 저장합니다. 따라서이 메서드를 사용하지 말고 다음 코드를 사용하여 통합 문서를 메모리 스트림 개체에 저장해야합니다. 문제를 해결해야합니다.

C#을

//Load your Excel file 
Workbook wb = new Workbook(yourFile); 

//Create memory stream object 
MemoryStream ms = new MemoryStream(); 

//Determine the save format 
SaveFormat svfmt = (SaveFormat)wb.FileFormat; 

//Save the workbook to memory stream 
wb.Save(ms, svfmt); 

참고 : 내가 Aspose에서 개발자 전도사로 일하고 있어요