Heim >Software-Tutorial >Bürosoftware >Quellcode-Implementierung des Excel-Imports in SQLServer
Geben Sie einen Code zum direkten Hochladen von Daten auf SqlServer in Excel:
Kann entsprechend geändert werden,
FormName ist die Tabelle in der Datenbank,
DBString ist das Datenbankverbindungsfeld,
Sub UploadData()
If FormName = "" Then Exit Sub
Dimmen Sie eine neuwertige ADODB.Connection
Dim b As New ADODB.Recordset
a.DBString öffnen
RowCount = Application.CountA(Rows("1:1"))
Für i = 2 To application.counta(range("a:a"))
sql = ""
Setze b = Nichts
Für j = 1 To RowCount - 1
sql = sql & "'" & Cells(i, j) & "', "
Weiter
sql = "insert into " & FormName & "values(" & sql & "'" & Cells(i, RowCount) & "')"
b.Open Source:=sql, ActiveConnection:=a
Weiter
MsgBox „OK!“
End Sub
Es gibt verschiedene Methoden, finden Sie einfach eine passende,
Um Ihre Aufgabe abzuschließen, müssen Sie die Verbindungseigenschaften der Datenbank verstehen, die entsprechend Ihrer tatsächlichen Situation geändert werden können.
Provider=SQLOLEDB.1;Persist Security Info=False;Benutzer-ID=md-inspection;PWD=mdOL20!31)25;Initial Catalog=Online_Inspection;Data Source=Cduvmdb01,1433
Darüber hinaus müssen relevante Verweise auf der VBE-Seite hinzugefügt werden:
Umgebung: c#.2005+Access+ Sql
1. Fügen Sie die DataTable in die Datenbank ein
public static 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-Daten in DataTable einlesen
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="" + strExcelFileName + ";"" +"Extended Properties=Excel 5.0;";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter-Adapter = neuer OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
}
return ds.Tables[strSheetName];
}
3. Daten in die Access-Datenbanktabelle einfügen
public static void InsertDataToAccess(string _strPara,float _fPara)
{
OleDbConnection oleDbConn = new OleDbConnection();
oleDbConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:ExcelData.mdb;User Id=admin;Password=;";
oleDbConn.Open();
string strInsertString = "INSERT INTO tb_excelData (strCollumn1,fCollumn2) VALUES (@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();
}
Der Code lautet wie folgt:
Unterdateizusammenführung()
Dimmen Sie wb als Arbeitsmappe, sh als Arbeitsblatt, pT als Zeichenfolge, wb2 als Arbeitsmappe, t
t = Timer
'Erkennen Sie, ob eine irrelevante Arbeitsmappe geöffnet ist
Wenn Arbeitsmappen.Anzahl > 1, dann
MsgBox „Andere geöffnete Arbeitsmappen schließen“
Exit Sub
Ende wenn
'Geben Sie den Ordner an, in dem sich die Datei befindet
Mit Application.FileDialog(msoFileDialogFolderPicker)
.Zeigen
If .SelectedItems.Count = 0 Then Exit Sub 'Wenn Sie Abbrechen drücken oder X das Dialogfeld schließt, beenden Sie es direkt
pT = .SelectedItems(1)
Ende mit
Application.ScreenUpdating = False 'Bildschirmaktualisierung deaktivieren
Application.DisplayAlerts = False 'Dialogfeld schließen
'Erstellen Sie ein neues Arbeitsblatt mit dem Namen New.xls
Setze wb = Workbooks.Add
shJS = wb.Worksheets.Count
fn = Dir(pT & "*.xls")
Während fn ""
If fn = wb.Name Then GoTo gg
i = i + 1
Wenn ich > shJS dann
Setzen Sie sh = wb.Worksheets.Add(After:=wb.Worksheets(wb.Worksheets.Count))
Ende wenn
Setzen Sie 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.Schließen
gg:
fn = Dir
Wend
wb.SaveAs pT & „new.xls“
wb.Schließen
Application.ScreenUpdating = True 'Bildschirmaktualisierung aktivieren
Application.DisplayAlerts = True 'Dialogfeld öffnen
MsgBox „Gemeinsame Zeit“ & Timer – t & „Sekunden. Neue Datei new.xls generieren“
End Sub
Tabelle A in der Datenbank, die Felder sind A1, A2, A3, a4, a5
Tabelle d:shuju.xls
Enthält die Artikel b1, b2, b3, b4, b5
in dbo.A einfügen
(a1,a2,a3,a4,a5)
SELECT b1,b2,b3,b4,b5
VON OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Data Source=d:shuju.xls;Extended Properties=EXCEL 8.0' )...[Sheet1$] Rowset_1
Auf diese Weise können Sie es natürlich auch mit der Steuerdatei TXLSFile importieren. Wenn Sie es benötigen, können Sie es bei mir anfordern
mchestnut@163.comDas obige ist der detaillierte Inhalt vonQuellcode-Implementierung des Excel-Imports in SQLServer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!