2015-02-06 4 views
3

Я обрабатываю данные Excel на C# (и SQL Server). Мне нужно иметь возможность сообщать конечным пользователям о любых строках excel, где это проблематично. Естественный способ сделать это - указать номер строки Excel. Однако неясно, как я могу получить номер этой строки для справки.Могу ли я получить номер строки Excel с помощью OleDB?

У меня есть что-то вроде этого:

OleDbCommand cmd = new OleDbCommand("SELECT * FROM MyWorkSheet$", conn); 

и хочу что-то вроде этого:

OleDbCommand cmd = new OleDbCommand("SELECT ExcelRowId,* FROM MyWorkSheet$," conn); 

в SQL: row_number() делает работу, потому что я не могу предоставить соответствующий ORDER BY. Excel: ROW() недоступен в строке запроса.

ответ

1

Пока что ответ «Нет», но я могу создать его позже.

int row; 
foreach (DataTable t in ds.Tables) 
{ 
    t.Columns.Add("RowNum",typeof(Int32)); 
    row = 1; 
    foreach (DataRow r in t.Rows) 
    { 
     r["RowNum"] = row++; 
    } 
} 

Это похоже на надежность, но по-прежнему чувствует себя как вещь, которая может произойти более естественно.

Смежные вопросы