Worksbook saved with stream is broken

4.2k views Asked by At

recently I was trying to save Aspose.Cells.Workbook to stream with

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

But when I'm trying to open generated .xlsx file Excel sends me an error that file is corrupted.

1

There are 1 answers

0
shakeel On BEST ANSWER

SaveToStream() method will only save your workbook in XLS format. So you should not use this method but use the following code to save your workbook in memory stream object. It should fix your issue.

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

Note: I am working as Developer Evangelist at Aspose