2010-11-11 17 views
0

Je souhaite autoriser l'utilisateur à télécharger un fichier xls avec 9 colonnes et un nombre illimité de lignes. je vais courir sur everyline et insérer les données à la dbasp et ms-access db - comment importer des données depuis un fichier xls

comment puis-je lire le fichier xls?

+1

Avez-vous une raison de courir sur chaque ligne? Sinon, il est tout à fait possible d'écrire SQL qui va insérer Excel dans Access dans une seule instruction. BTW ASP Classic ou .Net? – Fionnuala

+0

ASP CLASSIQUE - pouvez-vous me donner explnation pour ce que vous avez dit? –

+0

J'ai ajouté un exemple. – Fionnuala

Répondre

0

En C#, je devais charger une feuille de calcul Excel à un DataSet - cela m'a fait là ...

Code Project Example

je Option 1 - la méthode préférée! Espérons que cela aide ...

Mike

+0

mais j'utilise ASP classique pas .NET –

1

Vous pouvez lire le XLS en ouvrant un jeu d'enregistrements ADO qui tire dans les données de la feuille de calcul.

Cet exemple lit les données à partir d'une feuille de calcul nommée Récapitulatif de facturation qui comprend les noms de colonnes dans la première rangée ..

Public Sub ReadSpreadsheet() 
    Const cstrFolder As String = "C:\Access\webforums" 
    Const cstrFile As String = "ExampleFinance.xls" 
    Dim strConnect As String 
    Dim strSql As String 

    Dim cn As Object 
    Dim rs As Object 
    Set cn = CreateObject("ADODB.Connection") 
    Set rs = CreateObject("ADODB.Recordset") 

    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ 
     cstrFolder & Chr(92) & cstrFile & _ 
     ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";" 
    cn.Open strConnect 
    strSql = "SELECT * FROM [Billing Summary$] WHERE SomeField Is Not Null;" 
    rs.Open strSql, cn 

    Do While Not rs.EOF 
     '* do something with each row of data *' 
     'Debug.Print rs!SomeField ' 
     rs.MoveNext 
    Loop 

    rs.Close 
    Set rs = Nothing 
    cn.Close 
    Set cn = Nothing 
End Sub 

Si cette chaîne de connexion particulière ne fonctionne pas pour vous, regardez d'autres exemples de connexion Excel chaînes à Connection strings for Excel

Modifier: cet exemple fonctionne dans Access. Mais vous avez dit ASP. Je pense que cela fonctionnera là aussi, si vous supprimez les types de données des déclarations variables et constantes: Dim strSql au lieu de Dim strSql As String

1

Exemple d'utilisation d'une instruction SQL pour mettre à jour Access depuis Excel.

Set cn = CreateObject("ADODB.Connection") 

scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\docs\dbto.mdb" 

cn.Open scn 

sSQL = "SELECT * INTO NewTable FROM " 
sSQL = sSQL & "[Excel 8.0;HDR=YES;IMEX=2;DATABASE=C:\Docs\From.xls].[Sheet1$]" 

cn.Execute sSQL, recs 

MsgBox recs