本篇文章分享vb.net如果快速读取Excel文件中的Sheet表名称,无视Excel文件大小,轻松快速获取
应用场景:快速获取某个文件夹下的Excel文件Sheet表信息 1.帮助类源代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 Imports System.DataImports System.Data.OleDbPublic Class ExcelOleDBUtilsTools Implements IDisposable Private disposedValue As Boolean Private Property StrConn As String Public Sub New () End Sub Public Sub New (fileName As String ) If fileName.EndsWith(".xls" ) Then StrConn = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source ={fileName};Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'" ElseIf fileName.EndsWith(".xlsx" ) Or fileName.EndsWith(".xlsm" ) Then StrConn = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source ={fileName};Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'" End If End Sub Public Function GetWorkSheetList() As List(Of String ) Try Using myCon As New OleDb.OleDbConnection(StrConn) myCon.Open() Dim tableName As New List(Of String ) Dim dt As System.Data.DataTable = myCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object () {Nothing , Nothing , Nothing , "Table" }) For Each row As DataRow In dt.Rows Dim SheetTableName As String = row.Item("TABLE_NAME" ).ToString() If SheetTableName.Contains("$" ) AndAlso SheetTableName.Replace("'" , "" ).EndsWith("$" ) Then SheetTableName = SheetTableName.Replace("'" , "" ) SheetTableName = SheetTableName.Substring(0 , SheetTableName.Length - 1 ) tableName.Add(SheetTableName) End If Next Return tableName End Using Catch ex As Exception Return New List(Of String ) End Try End Function #Region "释放对象" Protected Overridable Sub Dispose(disposing As Boolean ) If Not disposedValue Then If disposing Then End If disposedValue = True End If End Sub Public Sub Dispose() Implements IDisposable.Dispose Dispose(disposing:=True ) GC.SuppressFinalize(Me ) End Sub #End Region End Class
2.调用方法 1 2 Dim oledb As New ExcelOleDBUtilsTools(file)Dim SheetNameList As List(of String )=oledb.GetWorkSheetList()