Frage

Ich habe den folgenden Code bekam von hier eine Excel-Datei mit C # .NET zu lesen:

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$]";

Ich will nur 10 Zeilen auszuwählen, aus der vierten Reihe starten, wie kann ich das tun?

War es hilfreich?

Lösung

Ich bin kein Excel Abfrage-Experte, aber das funktioniert sicher. Verwenden Sie TOP die Abfrage 13 Zeilen zu begrenzen. Die erste Zeile ist die Kopfzeile mit Spaltennamen so kann es nicht zählen. Offensichtlich ändern, wenn ich falsch verstehen. Dann halte Spur einer Reihe ID und tun Sachen Reihen am oder nach dem 4.

Hope, das hilft!

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]);
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top