2

次のコード行があります。

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

私の目的は、my_memory_stream に含まれるストリームを「book1」という名前の xlsx ファイルに保存することです。問題は、このコードを実行すると例外が発生することです (無効な Excel2007Xlsx ファイル形式)。私が間違っていることを誰かが知っていますか?

本当にありがとう!

4

2 に答える 2

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 の開発者エバンジェリストです。

于 2013-06-13T19:42:37.127 に答える