VB和Aspose的问题

时间:2013-06-13 08:53:57

标签: vb.net excel aspose aspose-cells

我有以下几行代码:

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

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

非常感谢!

2 个答案:

答案 0 :(得分:2)

最有可能的问题是base64格式。它是ASCII字符的形式。您需要将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")

另请注意,如果解码正确,您可以直接将二进制字节或流保存到磁盘并验证Excel是否已正确保存。

PS。我是Aspose的开发人员传播者。

答案 1 :(得分:0)

您似乎正在尝试将流直接保存到Excel文件中。 Excel文件具有固定格式,并且流不符合excel的标准文件协议。

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