2009-04-08 4 views
3

Excel없이 컴퓨터 의 Excel 파일 (.xls)에서 C#으로 정보를 추출 할 수 있습니까?excel이 설치되어 있지 않은 컴퓨터에서 Excel 파일의 정보를 C#으로 추출 할 수 있습니까?

나는 다음과 같은 코드를 가지고 :

 OleDbConnection objConn = new 
      OleDbConnection(CONNECTION_STRING.Replace("<FILENAME>", fileName)); 

      try 
      { 
       objConnection.Open(); 
      } 
      catch (Exception) 
      {} 

는 그것은 IndexOutOfRangeException을 던졌습니다 내가 엑셀이 설치되어 있지 않은 컴퓨터에서 실행할 때는 OleDbConnection을 열려고하면 ("테이블에 0을 찾을 수 없습니다"). Excel에서 컴퓨터에서 실행되는 동일한 코드가 올바르게 작동합니다. 따라서 나는 범죄자가되기위한 탁월함의 부족을 매우 강력하게 의심합니다.

이것이 문제입니까? 이것이 그렇다면 어떻게 파일에서 데이터를 추출 할 수 있습니까?

+0

지금은 확인할 수 없지만 워크 시트의 테이블로 명시 적으로 정의 된 테이블? –

+0

어떤 종류의 정보를 추출 하시겠습니까? 파일이 .xls 또는 .xlsx 형식입니까? –

답변

5

오픈 소스 NExcel을 확인하십시오. 마지막으로 약 2 년 전에 업데이트되었으므로 최신 Excel 2007 .xlsx 형식에 대한 지원은 없지만 Excel 07-Excel 2003은 읽습니다.

1

가능합니다. 형식이 .XLS이면 Microsoft Jet OLEDB 4.0을 사용합니다 (32 비트 시스템에서 실행되는 한 문제없이 작동해야합니다. 64 비트 시스템에서는 몇 가지 문제가 있습니다). 약간. 아마 당신은 올바른 길을 가고 있습니다. 엑셀없이 두 가지 방법이 열

사용 Jet 데이터베이스 드라이버를 설치 있습니다

Reading and Writing Excel Spreadsheets Using ADO.NET C# DbProviderFactory

4

:

확인이 링크 아웃, 당신이 알아야 할의 적어도 일부를 설명해야한다 파일. 이렇게하면 행의 셀 값에 액세스하여 각 시트를 표로 처리 할 수 ​​있습니다. 메타 정보 (서식, 설명 등)에 액세스 할 수 없습니다.

SpreadsheetGear.NET을 사용하면 Excel 또는 다른 종속성없이 Excel 이진 파일을 열고 만들고 조작하고 저장할 수 있습니다. SpreadSheetGear는 평가를 위해 다운로드 할 수 있지만 라이센스 비용이 들게됩니다.

관련 문제