从Excel获取工作表名称

我正在上传Excel文件到SQL Server数据库。 我目前正在使用这一行从表中获取数据:

string myQuery = "Select * from [Sheet1$]"; 

问题是,如果工作表名称不是Sheet1 ,则会失败。 有没有办法在Sheet1获取表名而不是硬编码?

您可以使用GetOleDbSchemaTable首先查询模式:

 DataTable schemaTable = connection.GetOleDbSchemaTable( OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); 

第一个表的名字应该在schemaTable.Rows[0][0]

函数GetSheetNames(BYVAL ExcelFile作为string)作为列表(string)昏暗_Sheets作为表=没有昏暗LstSheetName作为列表(string)=没有尝试LstSheetName =新列表(string)使用文档作为SpreadsheetDocument = SpreadsheetDocument.Open(ExcelFile, False)Dim _WorkbookPart As WorkbookPart = Document.WorkbookPart _Sheets = _WorkbookPart.Workbook.Sheets End Using

  For Each Item As Sheet In _Sheets LstSheetName.Add(Item.Name) Next Return LstSheetName Catch ex As Exception Throw ex End Try End Function