2009-05-28 2 views
5

Excel 파일에서 일부 데이터를 추출하려면 ADO.net을 사용하고 싶습니다. 이 과정은 인터넷에서 잘 설명되어 있습니다. 사용자가 내 파일을 업로드했기 때문에 메모리에 바이트 배열로만 존재합니다. 보안 및 성능상의 이유로이 파일을 디스크에 쓰지 않을 것입니다.ADO.NET을 사용하여 메모리 내 Excel 파일 (바이트 배열)을 읽으십니까?

바이트 배열에 연결하는 연결 문자열을 만드는 방법이 있습니까? 아니면 아마도 그 배열을 실제로 메모리에 저장되어있는 파일로 노출시킬 것입니다 (RAM 디스크와 같음)?

+0

에 메모리를 보유하고 .NET 객체의 어떤 종류의 엑셀 : 예를 들어 같은 뭔가 SpreadSheetGear.Net를 사용 - 내가 생각할 수있는

수있는 유일한 방법은 바이너리 Excel 데이터를 직접 읽는 것입니다 파일? –

+0

바이트 배열입니다. 나는 그 질문을 갱신 할 것이다. –

답변

5

메모리에만있는 경우 연결할 수 없습니다. OLE도 배제됩니다 (Office Application을 서버 응용 프로그램으로 사용하는 것은 처음에는 좋지 않습니다).

SpreadsheetGear.Factory.GetWorkbookSet().Workbooks.OpenFromStream(*stream*); 
+0

SpreadsheetGear에는 IWorkbooks.OpenFromMemory (byte [] data) 메서드가 있으므로 David에서 제안한대로 스트림에서 바이트 배열을 직접 읽을 수 있습니다. –

2

처럼 리치 B는 그의 대답에서 말했다, 나는 표준 고뇌에 연결할 수 있습니다 생각하지 않습니다. 그물에 매달려있는 파일을 엑셀 파일로 변환하는 방법. 가장 간단한 해결 방법은 실제로 엑셀 파일을 디스크에 저장하고 연결 문자열을 사용하여 Jet 엔진을 사용하여 연결 한 다음 모든 작업을 수행했으면 파일을 제거하는 것입니다. 이것은 성능면에서 이상적인 것은 아니지만, 머리카락을 뽑아 낼 수있는 특정 태만함이 부족합니다.

관련 문제