1

Excelシート(またはAccess)からSQL Azureへのデータのインポートを簡単にする利用可能なツールはありますか?私はC#スクリプトを書くことができました(そして私は今利用できる最高のものを想定しています)が、他のツールがそこにあるかどうかを確認したいと思いました。インポートするExcelシートは単純ですが、数万のレコードがあり、自動化されたツールを使用してインポートしたいと考えています。

ヘルプ?

4

2 に答える 2

6

SQL Serverのデータのインポートとエクスポート(32ビット)を使用して、ExcelファイルからSQLAzureのテーブルにデータを転送することもできます。非常に高速です。宛先を選択するときは、それがSqlServer用の.NetFrameworkデータプロバイダーであることを確認してください。データソース、ユーザーID、パスワード、初期カタログのプロパティも設定する必要があります。

于 2014-01-29T18:17:37.760 に答える
4

オプション1、コピーして貼り付ける

これは非常に大雑把な解決策ですが、確かに少量のデータで以前に使用したことがあります。Excelで行と列を選択するだけで、データベーステーブルスキーマと相関していることを確認できます。クリップボードにコピーします。Visual Studioでデータベースへの接続を開き、最後の空の行を選択して貼り付けます。

私が言ったように、非常に大雑把な解決策ですが、それが機能して時間を節約できるのであれば、それが重要です。最初に少数の行を選択してみてください。自動インクリメント列を除外することを忘れないでください。最初にCSVに変換すると、テーブルスキーマにインポートされない可能性のあるExcelフォーマットが無効になります。正直なところ、このメソッドがより大きなデータセットでどのように機能するかはわかりません。明らかに、Excelドキュメントのデータ、列の数などに依存します。データをチャンクで移動する必要があるかもしれませんが、他の方法よりも高速です。

オプション2、CSVからDataTable

2番目の方法では、ある程度のコーディングが必要ですが、データをデータテーブルにマップする方法をより細かく制御できます。基本的には、ドキュメントをExcelからCSVに変換し、行をループするDataTableオブジェクトを読み込んで、SQLデータベーステーブルに挿入する必要があります。

Dim dt As DataTable = New DataTable("myData")
Dim DataFile As FileInfo = New FileInfo("c:\myspreadsheet.csv")

Dim MyConnection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & DataFile.Directory.FullName & "';Extended Properties='text;HDR=NO';Jet OLEDB:Engine Type=96;")
Dim oledataAdapter As OleDbDataAdapter
oledataAdapter = New OleDbDataAdapter("SELECT * FROM [" & DataFile.Name & "]", MyConnection)

oledataAdapter.Fill(dt) 'Bind the csv to the data table

'LOOP AND INSERT HERE...
For Each DataRowObj As DataRow In dt.Rows

Next
于 2013-03-19T17:22:04.933 に答える