使用流保存的工作簿已损坏

Worksbook saved with stream is broken

最近我试图保存 Aspose.Cells.Workbook 以使用

进行直播
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);
        }
}

但是,当我尝试打开生成的 .xlsx 文件时,Excel 向我发送了一个文件已损坏的错误消息。

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 担任开发人员布道师