2013-01-20 4 views
0

저는 C#에 익숙하며 C#에서 일부 데이터를 얻고 싶습니다. # 데이터베이스에 저장하고 싶습니다.C에서 행 데이터를 Excel에서 얻는 방법 #

var fileName = @"C:\Users\AhsanWindows8\Desktop\Book1.xlsx"; 
     var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\""; ; 
     using (var conn = new OleDbConnection(connectionString)) 
     { 
      conn.Open(); 

      var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); 
      using (var cmd = conn.CreateCommand()) 
      { 
       cmd.CommandText = "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "] "; 

       var adapter = new OleDbDataAdapter(cmd); 
       var ds = new DataSet(); 
       adapter.Fill(ds); 
      } 
     } 

지금이 내 엑셀 파일이

enter image description here

같은 모습입니다 : 그것에 대해 아무 생각, 내가 여기 코드는 다음 코드와 그 나에게 데이터를주고 잘 작동하지만 발견 키 값 쌍과 같은 사전에서이 데이터를 가져올 수 있습니까? 왼쪽에 영어 단어가 있다고 가정합니다. 측면이 핵심이고 텍스트가 오른쪽 일 것입니다.

답변

0

이 시도 : 데이터 세트는 당신이 사전을 구축하기 위해이 코드를 사용할 수 있습니다 채워집니다

cmd.CommandText = 
     "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "$] "; 

. 당신은 LINQ에 익숙하다면

var dict = new Dictionary<string, string>(); 
foreach(DataRow row in ds.Tables[0].Rows) 
{ 
    dict.Add(row[0].ToString(), row[1].ToString()); 
} 

, 당신이 사용 시도 할 수 있습니다 :

ds.Tables[0].Rows.ToDictionary(r => r[0].Tostring(), r => r[1].Tostring()); 
+0

난 아직 사전에 데이터를 변환하는 방법을 모른다 (키, 값) – Smartboy

관련 문제