使用流保存的工作簿已损坏
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 担任开发人员布道师
最近我试图保存 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 担任开发人员布道师