2011-06-14 10 views
0

私はxlsファイルを持っていますが、私はc#を使用して読み込み、データテーブルに情報を入力したいと思います。私が使用しているコードは:このデータテーブルが移入されたらxlsで動作する主な問題C#.net 4.0

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]; 
} 

、Iは、アクセスデータベーステーブルをポピュレートデータテーブルを介して第1の5またはので、ヘッダ情報を含む行、およびループを削除する必要があります。私はこれと何か他の10,000の方法のいずれかを提案して運がなかった。誰も私を助けることができる情報を持っていますか?私はVS2010 .net 4.0フレームワークを実行しています。任意のすべてのヘルプは非常に高く評価されます。

おかげで、 ジョン

+0

。難しい方法は、スプレッドシートがデータベースに似ていることを確かにしていることです。または、Microsoft.Office.Interop.Excel名前空間のクラスを使用することもできます。 –

+0

スプレッドシートは常に同じ形式になります。私が探しているプロセスは次のとおりです。1.スプレッドシートを何らかの種類の一時テーブルに読み込み、そのデータをアクセスDBに入れます。フィールドマッピングは簡単です。理解したいのは、スプレッドシートをデータテーブルに読み込み、必要のない情報を含むデータテーブルから行を切り取り、データテーブルから同じ名前のフィールドを持つアクセステーブル。私はそれが難しいとは思っていませんが、私は言及された方法で運が全くありませんでした。 – SSISPissesMeOff

答えて

1

私はOLEDBを使用したDataTableにExcelのデータを取得しようとしているトラブルの多くを持っていました。最後に、Excel Interopを使用するソリューションに切り替えることで問題を解決しました。詳しい説明とサンプルコードについては、この答えを参照してください:あなたは、ハードな方法や簡単な方法これを行うことができ

Importing from Excel: some cells become null

関連する問題