我正在用C#和OleDB(12.0)读取一个excel文件.在那里,我必须使用我希望阅读的表单的名称指定select语句([Sheet1$]
).
this.dataAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
是否可以选择第一张纸,无论名称是什么?
谢谢.
请参阅此答案,了解如何按顺序获取工作表名称列表:使用Excel OleDb获取工作表名称IN SHEET ORDER
这是我的版本更短一些:
public static IEnumerableGetExcelSheetNames(string excelFile) { var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";Extended Properties=Excel 8.0;"; using (var connection = new OleDbConnection(connectionString)) { connection.Open(); using (var dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null)) { return (dt ?? new DataTable()) .Rows .Cast () .Select(row => row["TABLE_NAME"].ToString()); } } }