我可以使用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++; } }
这似乎是可靠的,但它仍然感觉像那种事情可以更自然地发生。