我有下面的代碼行:問題用VB和閱讀Aspose
Dim ms As New MemoryStream(my_memory_stream)
workbook As New Workbook(ms)
workbook.Save("C:\book1.xlsx")
我的目的是包含在my_memory_stream流保存到一個名爲「BOOK1」的XLSX文件:問題是,當我運行這個代碼發生異常(無效的Excel2007Xlsx文件格式)。 有誰知道我在做什麼錯?
非常感謝!
我有下面的代碼行:問題用VB和閱讀Aspose
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對象。
my_memory_stream包含一個xlsx文件(base64格式) –
嘗試不保存在系統根目錄C:.. – matzone
我試過了,但我仍然有同樣的問題 –
** my_memory_stream **中有什麼? – matzone