我有以下几行代码:
Dim ms As New MemoryStream(my_memory_stream)
workbook As New Workbook(ms)
workbook.Save("C:\book1.xlsx")
我的目的是将my_memory_stream中包含的流保存到名为“book1”的xlsx文件中:问题是当我运行此代码时发生异常(无效的Excel2007Xlsx文件格式)。 有谁知道我做错了什么?
非常感谢!
答案 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对象。