Donnez-vous un code pour télécharger des données directement sur SqlServer dans Excel :
Peut être modifié de manière appropriée,
FormName est la table dans la base de données,
DBString est le champ de connexion à la base de données,
Sub UploadData()
Si FormName = "" Alors quittez Sub
Dim a As New ADODB.Connection
Dim b comme nouveau ADODB.Recordset
a.Ouvrir DBString
RowCount = Application.CountA(Rows("1:1"))
Pour i = 2 To application.counta(range("a:a"))
sql = ""
Ensemble b = Rien
Pour j = 1 pour RowCount - 1
sql = sql & "'" & Cellules(i, j) & "', "
Suivant
sql = "insérer dans " & FormName & "values(" & sql & "'" & Cells(i, RowCount) & "')"
b.Open Source :=sql, ActiveConnection :=a
Suivant
MsgBox "OK!"
Fin du sous-marin
Il existe différentes méthodes, il suffit de trouver celle qui convient,
Pour terminer votre tâche, vous devez comprendre les propriétés de connexion de la base de données. Voici les champs de connexion, qui peuvent être modifiés en fonction de votre situation réelle,
Provider=SQLOLEDB.1;Persist Security Info=False;User id=md-inspection;PWD=mdOL20!31)25;Initial Catalog=Online_Inspection;Data Source=Cduvmdb01,1433
De plus, des références pertinentes doivent être ajoutées à la page VBE :
Environnement : c#.2005+Access+ Sql
1. Insérez le DataTable dans la base de données
public static void DataTableToDB()
{
string _strExcelFileName = @"D:exemple.xls";
DataTable dtExcel = ExcelToDataTable(_strExcelFileName,"Sheet1");
pour (int i = 0; i
{
InsertDataToAccess(dtExcel.Rows[i][0].ToString(), float.Parse(dtExcel.Rows[i][1].ToString()));
}
}
2. Lire les données Excel dans DataTable
DataTable statique public ExcelToDataTable (string strExcelFileName, string strSheetName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Source de données="" + strExcelFileName + ";"" +"Propriétés étendues=Excel 5.0;";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
DataSet ds = new DataSet();
en utilisant (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
Adaptateur OleDbDataAdapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
}
retourner ds.Tables[strSheetName];
}
3. Insérez les données dans la table de la base de données Access
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) VALEURS (@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();
}
Le code est le suivant :
Fusion de sous-fichiers()
Dim wb comme classeur, sh comme feuille de calcul, pT comme chaîne, wb2 comme classeur, t
t = Minuterie
'Détecter si un classeur non pertinent est ouvert
Si Workbooks.Count > 1 Alors
MsgBox "Fermer les autres classeurs ouverts"
Quitter le sous-marin
Fin si
'Spécifiez le dossier où se trouve le fichier
Avec Application.FileDialog(msoFileDialogFolderPicker)
.Afficher
If .SelectedItems.Count = 0 Then Exit Sub 'Si vous appuyez sur Cancel ou X ferme la boîte de dialogue, quittez directement
pT = .SelectedItems(1)
Fin avec
Application.ScreenUpdating = False 'Désactiver l'actualisation de l'écran
Application.DisplayAlerts = False 'Fermer la boîte de dialogue
'Créez une nouvelle feuille de calcul nommée New.xls
Définir wb = Classeurs.Ajouter
shJS = wb.Worksheets.Count
fn = Dir(pT & "*.xls")
Pendant que fn ""
Si fn = wb.Name alors GoTo gg
i = i + 1
Si je > shJS Alors
Définissez sh = wb.Worksheets.Add(After:=wb.Worksheets(wb.Worksheets.Count))
Fin si
Définissez wb2 = Workbooks.Open(fn, ReadOnly = True)
wb2.Worksheets(1).Cells.Copie wb.Worksheets(i).Cells
wb.Worksheets(i).Name = Gauche(fn, Len(fn) - 4)
wb2.Fermer
gg :
fn = Dir
Wend
wb.SaveAs pT & "new.xls"
wb.Fermer
Application.ScreenUpdating = True 'Activer l'actualisation de l'écran
Application.DisplayAlerts = True 'Ouvrir la boîte de dialogue
MsgBox "Temps partagé" et minuterie - t et "Secondes. Générer un nouveau fichier new.xls"
Fin du sous-marin
Table A dans la base de données, les champs sont A1, A2, A3, a4, a5
Feuille de calcul d:shuju.xls
Contient les éléments b1, b2, b3, b4, b5
insérer dans dbo.A
(a1,a2,a3,a4,a5)
SÉLECTIONNER b1,b2,b3,b4,b5
DEPUIS OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Data Source=d:shuju.xls;Extended Properties=EXCEL 8.0' )...[Sheet1$] Rowset_1
De cette façon, vous pouvez l'importer. Bien sûr, vous pouvez également utiliser le contrôle TXLSFile. Si vous en avez besoin, vous pouvez me le demander
.mchestnut@163.com
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!