Читая Excel в .NET, как получить конкретные строки?

StackOverflow https://stackoverflow.com/questions/286044

  •  08-07-2019
  •  | 
  •  

Вопрос

Я получил следующий код с здесь чтобы прочитать файл Excel, используя 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$]";

Я хочу выбрать только 10 строк, начиная с 4-го ряда, как я могу это сделать?

Это было полезно?

Решение

Я не эксперт по запросам в Excel, но это, безусловно, работает. Используйте TOP, чтобы ограничить запрос до 13 строк. Первая строка - это заголовок с именами столбцов, поэтому он может не учитываться. Очевидно, изменится, если я пойму неправильно. Затем следите за идентификатором строки и добавляйте строки в строки после 4.

Надеюсь, это поможет!

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]);
        }
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top