2011-07-28 7 views
1

データベースからデータを取得していて、そのデータをExcelファイルのテーブルとして使用したいとします。 だから、私は次のように書かれている:データベーステーブルをダンプすることにより、シートを効率化する方法は?

Dim sheetToPopulate As Excel.Worksheet = getSheet() 
    Dim reader As OleDbDataReader 
    Dim query As String = "SELECT * FROM dataTable" 
    Dim cmd As New OleDbCommand(query, oleConn) 
    Dim reader As OleDbDataReader 
    oleConn.Open() 
    reader = cmd.ExecuteReader() 
    Do While reader.Read() 
     // How use the reader to populate the sheet at once. 
     // I have the sheet object as sheetToPopulate. 
     // cell.Vaule = reader.GetString(0) ' It would be very in-efficient and complex. 
     // How can I dump the table to my excel sheet ? 
    Loop 
    reader.Close() 
    oleConn.Close() 

これを行うの直線明白な方法があるはず?

Excelテーブルにデータベーステーブルをダンプする?

[すべきか? ]

Should I use dataset of something.. ? If yes, how to proceed for that ? 

は..私はこれに新しいです助けてください!

答えて

1

は、私がこれを解決する方法である:

Private Function getData(ByVal query As String, ByVal conStr As String) As Object 
    Dim adapter As New Data.OleDb.OleDbDataAdapter(query, conStr) 
    Dim dataSet As New Data.DataSet 
    adapter.Fill(dataSet) 
    Dim dataTable As Data.DataTable = dataSet.Tables(0) 
    Dim data(dataTable.Rows.Count, dataTable.Columns.Count - 1) As Object 
    For col = 0 To dataTable.Columns.Count - 1 
     For row = 0 To dataTable.Rows.Count - 1 
      data(row, col) = dataTable.Rows(row).ItemArray(col) 
     Next 
    Next 
    Return data 
End Function 

次に最後に、あなたがこのデータを持っているしたい範囲に次の操作を行う

range.Value = getDate(query,conStr) 

全体の問題を解決したこと!

-1

人気のあるライブラリーと思われるEPlusのようなものを見てください。それはタイプのジョブオフ一つだ場合は、単にSQL Server管理スタジオのエクスポート機能を使用することができます.csvファイルを作成する方法を

あなたを示す良いquickstartがある

...またはFileHelpers、?

+0

いいえ..これは私のアプリケーションの一部です。アプリケーションはもっと多くのことを実行します。私はできません! –

0

最も簡単な解決策は、csvファイルを作成する場合です。 csvでは、列はコンマ(;)で区切られ、Excelはこのファイルを読み取ることができます。

最も良い方法はOLEオートメーションですが、このためにはプログラムを実行するPCにExcelをインストールする必要があります。ここ はサンプルです:OLE Automation

+0

あなたはポイントが得られていませんが、これはアプリケーションの一部です。私はこれらの半自動的な仕事をすることはできません..それはすべてそれ自身で行う必要があります。 –

+0

あなたはリンクを見ましたか? OLEオートメーションは、Excelの作成と変更を自動化するプログラム的な技術です。 – Csujo

+0

あなたが本当に必要ない場合は、Excelに依存する必要はありません。あなたがより高度な機能を必要としない限り、.csvファイルが行く方法です..ワークシートなど – brodie

0

ベストな方法は、データテーブルのXmlSerializationを使用して、シリアル化されたXMLのExcelのロードを実行することである...

素敵なオープン・ソース・ユーティリティがあり(あなたが追加できますExcelLibraryという名前のプロジェクトを変更してください)... Create Excel (.XLS and .XLSX) file from C#

これは、一括アップロードの最も効率的な方法の1つです。ここで

関連する問題