2013-03-12 2 views
3

엑셀 파일에서 데이터를 읽고 데이터 유효성을 검사 한 후 데이터베이스에 업로드 할 수 있어야합니다.VB.Net에서 서버에 업로드하지 않고 Excel 파일의 데이터를 읽을 수 있습니까?

그러나 내가 사용하고있는 서버는 웹 응용 프로그램에 대한 쓰기 권한을 허용하지 않으므로 업로드를 통해 서버에 파일을 쓰지 않고도 Excel 파일을 읽을 수 있는지 알아야합니다.

지금까지 명확한 답변을 찾을 수 없었습니다.

감사합니다.

+0

엑셀 파일을 읽는 방법을 알지 못했습니다. OleDb를 사용하는 경우 연결 문자열에 파일이 필요하기 때문에 문제가 발생합니다. 글쎄, 내가 아는 한. –

+0

자세한 내용을 제공해 주시겠습니까? –

답변

2

업로드 제어가 fileUpload이라고 가정 해 봅시다.

fileUpload.SaveAs("path")을 수행 할 필요가 없습니다. fileUpload.PostedFile.InputStream으로 스트림을 읽을 수 있습니다. 잘못된 수 있습니다 다음, 그래서 내가 VB.net 잘 알고 아니에요,

using (var file = ZipFile.Read(fileUpload.PostedFile.InputStream)) 
{ 
    foreach (var zipEntry in file.Where(ze => ze.FileName.EndsWith(".xls") 
              || ze.FileName.EndsWith(".xlsx"))) 
    { 
     // process the Excel files here. 
    } 
} 

죄송합니다 : 난 (라이브러리 그런데 이오니아입니다) 거기에 엑셀 시트와 zip 파일이 사용. 그러나 VB.net 버전을 요청했기 때문에 :

Using file As var = ZipFile.Read(fileUpload.PostedFile.InputStream) 
    For Each zipEntry As var In file.Where(ze => ze.FileName.EndsWith(".xls") or ze.FileName.EndsWith(".xlsx")) 
     ' process the Excel files here. 
    Next 
End Using 
+0

단일 파일은 어떻습니까? 내부 데이터에 액세스하는 표준 방법이 있습니까? 루핑을 통해 데이터를 저장합니까? – Blunderfest

+1

귀하의 질문에 대한 언급에 언급했듯이 : 내가 아는 한, 두 가지 방법으로 파일을 읽는 것이 있습니다. 하나는 매우 느리고 버그가있는 Excel 라이브러리를 사용하고 있으며 스트림에서 파일을 읽을 수 있는지 여부를 알지 못합니다. 또는 파일을 원본으로 사용해야하는 OleDb 공급자를 사용합니다. 다른 옵션이있는 경우, 나는 그것을 인식하지 못합니다. 내 예제에서는 스트림을 사용할 수있는 방법을 보여 주면됩니다. –

관련 문제