是否可以在Excel工作簿中保存大量數據(大約1-2 mb)?將自定義數據保存在Excel工作簿中
理想情況下,此數據應與工作簿中的工作表綁定。
CustomProperties不太可能支持大數據。
我的數據可以以下列形式呈現:binary,xml,string。
謝謝...
是否可以在Excel工作簿中保存大量數據(大約1-2 mb)?將自定義數據保存在Excel工作簿中
理想情況下,此數據應與工作簿中的工作表綁定。
CustomProperties不太可能支持大數據。
我的數據可以以下列形式呈現:binary,xml,string。
謝謝...
是的,你可以在Excel單元格中存儲字符串和XML。對於二進制,你最好不要將它保存在Excel中,但如果你不得不這樣做,那麼OLE(對象鏈接和嵌入)可能是一個選項。你可以通過保存爲二進制的Excel之外的文件,然後將它作爲一個OLE對象這樣做:
它好工作爲我們的某些類型的文件類型常見的。但我們從來沒有做過原始二進制數據。通常我們會在電子表格中放入Word文檔或PDF。您還有可能破壞工作簿或丟失二進制數據的風險。在我們的例子中,OLE對象將被具有Wordperfect而不是Word的用戶點擊,或者他們運行Linux/Mac並且嵌入式文檔無法打開。
它確實使Excel文件變得相當大,每增加一個嵌入對象。這是一個古怪的技術。
您可以將VBA模塊添加到您的數據的工作簿中,並使用正常的ASCII字符串(例如,使用Base64編碼)對數據進行編碼。生成的代碼是這樣的:
Dim x(1000) As String
Sub InitData()
x(0) = "abcdefghijk...."
x(1) = "123456789......"
'...'
End Sub
您也可以將這些字符串存儲在一個表,而不是VBA模塊,行由行,如果你喜歡這一點。
爲了完成編碼/解碼,看這裏:
How do I base64 encode a string efficiently using Excel VBA?
不錯的解決方案。值得一提的是,在vb模塊中存儲數據被VBA編譯器限制爲幾千字節的數據,而存儲到表單則支持兆字節而沒有問題。每個單元存儲更多的數據,將電子表格保存到磁盤所需的時間更少。每個細胞4 kb對我來說工作正常。 Base64不會產生比十六進制小的文件,實現起來更簡單。我想這是由於壓縮工作表。 – Pierre 2014-12-07 14:15:41
如果你的信息都在文件中,你可以讀取二進制模式的文件,並把它在一個單元格中。然後在最後或開始時您將保存您的文件名,以便您可以輕鬆重建文件。 這裏有一些代碼供你開始:
Sub readBin()
Dim iFreeFile As Integer, bTemporary As Byte
iFreeFile = FreeFile
Open "\temp.bin" For Binary Access Read As iFreeFile
Do While Not EOF(intFileNum)
Get iFreeFile, , bTemporary //read byte from file
Cells(1, 1) = bTemporary //save in cell
Loop
Close iFreeFile
End Sub
Excel中的單元格支持很好的文本,公式和數字。爲什麼你想用Excel來存儲二進制數據?在Excel裏面使用它會很困難... – 2010-11-19 16:20:06