2011-06-14 4 views
0

xls 파일이 있는데 C#을 사용하여 읽고 데이터 테이블의 정보를 채 웁니다. 내가 사용하고있는 코드는 다음과 같습니다이 데이터 테이블이 채워집니다C# .net 4.0에서 XLS로 작업하는 주요 문제

public static DataTable GetExcelData(string excelFilePath) 
{ 
    OleDbConnection objConn = null; 
    string oledbConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFilePath + ";Extended Properties=Excel 10.0;"; 
    objConn = new OleDbConnection(oledbConnectionString); 

    if (objConn.State == ConnectionState.Closed) 
    { 
     objConn.Open(); 
    } 
    var objCmdSelect = new OleDbCommand("Select * from [Sheet1$]", objConn); 
    var objAdapter = new OleDbDataAdapter(); 
    objAdapter.SelectCommand = objCmdSelect; 
    var objDataset = new DataSet(); 
    objAdapter.Fill(objDataset, "ExcelDataTable"); 
    objConn.Close(); 
    return objDataset.Tables[0]; 
} 

되면, 내가 액세스 데이터베이스 테이블을 채우기 데이터 테이블을 통해 정보 및 루프 헤더가 들어 처음 5 개 정도 행을 제거해야합니다. 나는 이것에 대한 운이나 다른 10,000 가지 방법을 제안했다. 누구든지 나를 도울 수있는 정보가 있습니까? VS2010 .net 4.0 프레임 워크를 실행 중입니다. 모든 도움이 매우 감사 할 것입니다.

덕분에, 존

+0

. 어려운 방법은 확실히 스프레드 시트가 데이터베이스와 유사한 것으로 가정합니다. 또는 Microsoft.Office.Interop.Excel 네임 스페이스의 클래스 만 사용할 수도 있습니다. –

+0

스프레드 시트는 항상 같은 형식입니다. 내가 찾는 프로세스는 다음과 같습니다. 1. 스프레드 시트를 일종의 임시 테이블로 읽은 다음 해당 데이터를 액세스 DB에 저장합니다. 필드 매핑은 간단합니다. 이해하려는 모든 사람들은 스프레드 시트를 데이터 테이블로 읽는 방법, 필요하지 않은 정보로 데이터 테이블에서 행을 잘라내어 데이터 테이블의 데이터를 동일한 이름의 필드가있는 액세스 테이블. 나는 그렇게 열심히 일할 수 없다고 생각하고있다. 그러나 나는 언급 된 어떤 방법으로도 전혀 행운이 없다. – SSISPissesMeOff

답변

1

나는 DataTable을 사용하여 OLEDB로 Excel 데이터를 얻기 위해 노력하고 문제의 큰 거래를 했어. Excel Interop을 사용하는 솔루션으로 전환하여 마침내 문제를 해결했습니다. 자세한 설명 및 샘플 코드를이 답변을 참조하십시오 : 당신은 어려운 방법이나 쉬운 방법이 작업을 수행 할 수 있습니다

Importing from Excel: some cells become null

관련 문제