[英]Save custom data in Excel workbook
是否可以在Excel工作簿中保存大量數據(約1-2 MB)?
理想情況下,此數據應與工作簿中的工作表綁定。
CustomProperties不太可能支持大數據。
我的數據可以以下列形式呈現:binary,xml,string。
謝謝...
如果您的信息來自文件,您可以以二進制模式讀取文件並將其放在單元格中。 然后在最后或開頭,您將保存文件名,以便您可以輕松地重建文件。 以下是一些代碼供您開頭:
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單元格中存儲字符串和XML。 對於二進制文件,最好不要將其保存在Excel中,但如果必須,則可以選擇OLE(對象鏈接和嵌入)。 您可以通過將二進制文件保存為Excel外部的文件,然后將其作為OLE對象插入來執行此操作:
Dim mySht As Worksheet
Dim oleFileName as String
oleFile = "MyXmlDoc.xml"
Set mySht = ActiveWorkbook.ActiveSheet
mySht.Shapes.AddOLEObject Filename:=Environ$("Appdata") & _
"\MyFolder\" & oleFile, _
Link:=False, DisplayAsIcon:=True
對於某些類型的常見文件類型,它對我們來說很好。 但我們從來沒有為原始二進制數據做過。 通常我們在電子表格中放置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模塊中。
要完成編碼/解碼,請在此處查看:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.