ホームページ > 記事 > ソフトウェアチュートリアル > SQLServerにインポートするExcelのソースコード実装
Excel の SqlServer にデータを直接アップロードするコードを提供します:
適切に変更できます。
FormName はデータベース内のテーブルです。
DBString はデータベース接続フィールドです。
サブアップロードデータ()
For FormName = "" の場合、Sub を終了します
新しい ADODB.Connection をディムします
Dim bを新しいADODB.Recordsetとして
a.DBString を開く
RowCount = Application.CountA(Rows("1:1"))
i = 2 の場合 application.counta(range("a:a"))
sql = """
b = 何も設定しない
j = 1 から RowCount - 1
までsql = sql & "'" & Cells(i, j) & "', "
###次###sql = "insert into " & FormName & "values(" & sql & "'" & Cells(i, RowCount) & "')"
b.オープンソース:=sql、ActiveConnection:=a
###次###メッセージボックス「OK!」
エンドサブ
さまざまな方法があるので、適切な方法を見つけてください。
タスクを完了するには、データベースの接続プロパティを理解する必要があります。次に示す接続フィールドは、実際の状況に応じて変更できます。基本パラメータは自分で設定する必要があります。
プロバイダ=SQLOLEDB.1;永続セキュリティ情報=False;ユーザーID=md-inspection;PWD=mdOL20!31)25;初期カタログ=Online_Inspection;データソース=Cduvmdb01,1433
さらに、関連する参照を VBE ページに追加する必要があります:
データベースをインポートするための C Excel ソース コード
環境: c#.2005 Access SQL
パブリック静的 void DataTableToDB()
{
string _strExcelFileName = @"D:\example.xls";
DataTable dtExcel = ExcelToDataTable(_strExcelFileName,"Sheet1");
for (int i = 0; i
{
InsertDataToAccess(dtExcel.Rows[i][0].ToString(), float.Parse(dtExcel.Rows[i][1].ToString()));
}
}
2. Excel データを DataTable に読み込みます
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
string strConn = "プロバイダ=Microsoft.Jet.OLEDB.4.0;" "データ ソース=" strExcelFileName ";" "拡張プロパティ = Excel 5.0;";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter アダプター = 新しい OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
}
return ds.Tables[strSheetName];
}
3. Access データベース テーブルにデータを挿入します。
public static void InsertDataToAccess(string _strPara,float _fPara){
OleDbConnection oleDbConn = new OleDbConnection();
oleDbConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;データ ソース=C:\ExcelData.mdb;ユーザー ID=admin;パスワード=;";
oleDbConn.Open();
string strInsertString = "tb_excelData (strCollumn1,fCollumn2) の値に挿入 (@strCollumn1,@fCollumn2)";
OleDbCommand oComm = new OleDbCommand(strInsertString, oleDbConn);
oComm.Parameters.Add("@strCollumn1", OleDbType.Char , 50);
oComm.Parameters["@strCollumn1"].Value = _strPara;
oComm.Parameters.Add("@fCollumn2", OleDbType.Double);
oComm.Parameters["@fCollumn2"].Value = _fPara;
ocomm.ExecuteNonQuery();
oleDbConn.Close();
}
複数の Excel データ ファイルを別の Excel ファイル テーブルのソース コードにバッチ インポートする方法
コードは以下のように表示されます:
サブファイルのマージ()
t = タイマー
'無関係なワークブックが開かれているかどうかを確認します
If Workbooks.Count > 1 then
MsgBox "開いている他のワークブックを閉じる"
出口サブ
終了の場合
'ファイルがあるフォルダーを指定してください
Application.FileDialog(msoFileDialogFolderPicker)を使用する場合
###。見せる###
If .SelectedItems.Count = 0 then Exit Sub '[キャンセル]を押すか、[X]を押してダイアログ ボックスを閉じると、直接終了しますpT = .SelectedItems(1)
で終わる
Application.ScreenUpdating = False '画面の更新をオフにします
Application.DisplayAlerts = False 'ダイアログ ボックスを閉じる
'New.xls
という名前の新しいワークシートを作成します。
wb = Workbooks.Addを設定しますshJS = wb.Worksheets.Count
fn = Dir(pT & "\*.xls")
while fn
"""
If fn = wb.Name then GoTo gg
i = i 1
If i > shJS then
Set sh = wb.Worksheets.Add(After:=wb.Worksheets(wb.Worksheets.Count))終了の場合
Set wb2 = Workbooks.Open(fn, ReadOnly = True)
wb2.Worksheets(1).Cells.Copy wb.Worksheets(i).Cells
wb.Worksheets(i).Name = Left(fn, Len(fn) - 4)
wb2.閉じる
gg:
fn = ディレクトリ
水
wb.名前を付けて保存 pT & "\new.xls"
wb.閉じる
Application.ScreenUpdating = True '画面の更新をオンにする
Application.DisplayAlerts = True 'ダイアログ ボックスを開く
MsgBox "共有時間" & タイマー - t & "秒。新しいファイル new.xls を生成します"
エンドサブ
データベースのテーブル A にはフィールド A1、A2、A3、a4、a5 があります
スプレッドシートd\:shuju.xls
項目 b1、b2、b3、b4、b5 が含まれます
dbo.A
に挿入(a1,a2,a3,a4,a5)
選択 b1、b2、b3、b4、b5
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'データ ソース=d:\shuju.xls;拡張プロパティ=EXCEL 8.0' )...[Sheet1$] Rowset_1
これでインポートできます。もちろんコントロールのTXLSFileも使えます。必要な場合は私に聞いてください
mchestnut@163.com
以上がSQLServerにインポートするExcelのソースコード実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。