VB和Aspose的问题

我有以下几行代码:

Dim ms As New MemoryStream(my_memory_stream) workbook As New Workbook(ms) workbook.Save("C:\book1.xlsx") 

我的目的是将my_memory_stream中包含的stream保存到名为“book1”的xlsx文件中:问题是当我运行此代码时发生exception(无效的Excel2007Xlsx文件格式)。 有谁知道我在做什么错?

非常感谢!

最可能的问题是base64格式。 它是ASCII字符的forms。 您需要将Base64数据转换为二进制。 然后在Workbook类中加载二进制数据。

 ' Decode base64 Dim binaryBytes As Byte() = Convert.FromBase64CharArray(base64Data, 0, base64Data.Length) ' Load in MemoryStream Dim binaryStream As New MemoryStream(binaryBytes) ' Pass memory stream to Workbook Dim workbook As New Aspose.Cells.Workbook(my_memory_stream) workbook.Save(dataDir + "workbook-out.xlsx") 

还要注意的是,如果你的解码是正确的,你可以直接将二进制字节或stream保存到磁盘,并validationExcel是否正确保存。

PS。 我是Aspose的开发者推广者。

看来你正试图直接保存一个stream到一个Excel文件。 Excel文件有一个固定的格式,并且这个stream不会遵守excel的标准文件协议。

我想你想使用Microsoft.office.Interop.Excel命名空间的Workbook对象。