Question

J'ai le code suivant sur ici pour lire un fichier Excel avec C # .NET:

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Book1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
DbCommand command = connection.CreateCommand()
command.CommandText = "SELECT City,State FROM [Cities$]";

Je veux sélectionner seulement 10 lignes à partir de la 4ème ligne, comment puis-je faire cela?

Était-ce utile?

La solution

Je ne suis pas un expert en requêtes Excel, mais cela fonctionne certainement. Utilisez TOP pour limiter la requête à 13 lignes. La première ligne est l’en-tête avec les noms de colonnes, elle ne peut donc pas compter. Évidemment changer si je comprends mal. Ensuite, gardez une trace de l’ID de la ligne et effectuez des opérations dans les lignes à partir de 4.

J'espère que ça aide!

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Book1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connectionString)) {
    System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand();
    cmd.Connection = conn;
    cmd.CommandText = "SELECT top 13 City,State FROM [Cities$]";

    conn.Open();
    System.Data.IDataReader dr = cmd.ExecuteReader();

    int row = 2;
    while (dr.Read()) {
        if (row++ >= 4) {
            // do stuff
            Console.WriteLine("{0}, {1}", dr[0], dr[1]);
        }
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top