2009-04-28 2 views
0

.NET Framework 1.1에서 C#을 사용하여 Excel 파일을 읽는 중입니다. 내가이여러 유형의 열이 포함 된 Excel 읽기 문제

1003 1004 1005 Test_1 Test_2

그것의 나에게 오류를 포기하지 않을 같은 아니라 텍스트 무언가로 번호가 포함되어 열이있을 때 나는 Excel 파일을 읽기에 문제가 점점 오전,하지만 난 처음 세에 null 값을 얻고있다 열. 이것은 Excel 파일을 읽는 데 사용하는 코드입니다.

string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
                path + 
                ";Extended Properties=Excel 8.0;"; 

      System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(strcon); 

      try 
      { 
        objConn.Open();         
        System.Data.OleDb.OleDbDataAdapter objadp = new System.Data.OleDb.OleDbDataAdapter("Select * from [" + sheetName + "$" + "]",objConn); 
        DataSet ds = new DataSet();        
        objadp.Fill (ds); 
        return ds;        
      } 
      catch(Exception ex) 
      { 
        throw ex; 
      } 
      finally 
      { 
        objConn.Close(); 
        objConn.Dispose();        
      } 

누구에게 무슨 문제가 있다고 말해 줄 수 있습니까? 감사.

답변

1

컴퓨터에 .NET 1.1이 설치되어 있지 않지만 .NET 2.0이 설치된 상태에서 문제를 재현 할 수있었습니다. 연결 문자열을 약간 수정했으며 이제 텍스트 값을 읽을 수 있습니다. 마이크로 소프트 포럼에서 문제를 인용

string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
              @"C:\Documents and Settings\johnsond\Desktop\Book1.xls" + 
              @";Extended Properties=" + Convert.ToChar(34).ToString() + @"Excel 8.0;Imex=1;HDR=Yes;" 
              + Convert.ToChar(34).ToString(); 

는 다음과 같은 이유로 것으로 보인다 : Excel에서 실제 데이터베이스를하지 않고 열은 고정 데이터 유형을 가지고 있지 않기 때문에 당신이

문제는 꽤 일반적입니다. Jet OLEDB는 Excel과 함께 작동하도록 설계되지 않았으므로 이러한 제한 사항이 있습니다.

내가 알기에는 너무 납득이 안되는 :-) 만약 당신이 그러한 데이터를 엑셀에 쓰고 싶다면 더 복잡해집니다. 추가 읽기 : MSDN Forum Link

은 또한 당신이 SO 이전에 disucussed로 시트를 조작 할 "이 Excel.Application 개체"를 사용할 수 있습니다.

확인이 당신은 intrested하는 경우 : Read Excel using Excel.Application

건배!

+0

예 동일한 해결책을 발견했습니다. MSDN에서 언급 한 연결 문자열이 변경되었습니다. 답장을 보내 주셔서 감사합니다. –

관련 문제