我可以使用OleDB获取Excel行号吗?

我正在处理C#(和SQL Server)中的Excel数据。 我需要能够在有问题的任何Excel行上向最终用户报告。 自然的方法是给Excel的行号。 但是,我不清楚如何获得该行号作为参考。

我有这样的东西:

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

想要这样的东西:

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

SQL的:ROW_NUMBER()确实可行,因为我无法提供适当的ORDER BY。 Excel的:ROW()不能在查询string中访问。

到目前为止答案似乎是“不”,但我可以在以后创build。

 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++; } } 

这似乎是可靠的,但它仍然感觉像那种事情可以更自然地发生。