Excel 통합 문서에 많은 양의 데이터 (약 1-2MB)를 저장할 수 있습니까?Excel 통합 문서에 사용자 지정 데이터 저장
이상적으로이 데이터는 통합 문서의 워크 시트와 연결해야합니다.
CustomProperties는 대용량 데이터를 지원하지 않을 것입니다.
내 데이터는 binary, xml, string 형식으로 표시 할 수 있습니다.
감사합니다 ...
Excel 통합 문서에 많은 양의 데이터 (약 1-2MB)를 저장할 수 있습니까?Excel 통합 문서에 사용자 지정 데이터 저장
이상적으로이 데이터는 통합 문서의 워크 시트와 연결해야합니다.
CustomProperties는 대용량 데이터를 지원하지 않을 것입니다.
내 데이터는 binary, xml, string 형식으로 표시 할 수 있습니다.
감사합니다 ...
예, 엑셀 세포에서 문자열과 XML을 저장할 수 있습니다. 바이너리의 경우 Excel에 저장하지 않는 것이 좋겠지 만 OLE (개체 연결 및 포함)를 수행해야한다면 옵션을 사용할 수 있습니다. 당신은 OLE 개체로 삽입 다음 Excel의 외부 파일과 바이너리를 저장하고함으로써 그렇게 할 수있다 :
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 객체는 Word 대신 Wordperfect를 가진 사용자가 클릭하거나 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?
이좋은 해결책. VBA 모듈에 데이터를 저장하는 것은 VBA 컴파일러에 의해 수 킬로 바이트의 데이터로 제한되는 반면, 시트에 저장하는 것은 문제없이 메가 바이트를 지원한다는 점을 언급 할 필요가 있습니다. 셀당 더 많은 데이터가 저장되면 스프레드 시트를 디스크에 저장하는 데 필요한 시간이 줄어 듭니다. 세포 당 4kb는 잘 작동합니다. Base64는 16 진수보다 작은 파일을 생성하지 않으며 구현하기가 쉽습니다. 나는 이것이 워크 시트의 압축 때문이라고 생각합니다. – Pierre
, 당신은 바이너리 모드로 파일을 읽고 넣을 수 있습니다 그것은 세포에서. 그런 다음 파일을 쉽게 재구성 할 수 있도록 파일 이름을 저장합니다. 다음은 몇 가지 코드입니다.
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에서 그것을 사용하는 것은 매우 어려울거야 ... –