我有以下代码行:
Dim ms As New MemoryStream(my_memory_stream)
workbook As New Workbook(ms)
workbook.Save("C:\book1.xlsx")
我的目的是将 my_memory_stream 中包含的流保存到名为“book1”的 xlsx 文件中:问题是当我运行此代码时发生异常(无效的 Excel2007Xlsx 文件格式)。有谁知道我做错了什么?
非常感谢!
我有以下代码行:
Dim ms As New MemoryStream(my_memory_stream)
workbook As New Workbook(ms)
workbook.Save("C:\book1.xlsx")
我的目的是将 my_memory_stream 中包含的流保存到名为“book1”的 xlsx 文件中:问题是当我运行此代码时发生异常(无效的 Excel2007Xlsx 文件格式)。有谁知道我做错了什么?
非常感谢!
最有可能的是,问题出在 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 的开发人员布道师。
您似乎正在尝试将流直接保存到 Excel 文件中。Excel 文件具有固定格式,流不会遵守 excel 的标准文件协议。
我想你想使用 Microsoft.office.Interop.Excel 命名空间的 Workbook 对象。