Я надеюсь, что кто-то здесь может указать мне в правильном направлении - я пытаюсь создать довольно надежную служебную программу для быстрого чтения данных из листа Excel (может быть .xls OR.xlsx) в DataTable и как можно более плотно.
Я придумал эту процедуру в VB (хотя я был бы так же доволен хорошим ответом С#):
Public Shared Function ReadExcelIntoDataTable(ByVal FileName As String, ByVal SheetName As String) As DataTable
Dim RetVal As New DataTable
Dim strConnString As String
strConnString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & FileName & ";"
Dim strSQL As String
strSQL = "SELECT * FROM [" & SheetName & "$]"
Dim y As New Odbc.OdbcDataAdapter(strSQL, strConnString)
y.Fill(RetVal)
Return RetVal
End Function
Мне интересно, если это лучший способ сделать это или если есть более эффективные способы (или просто более интеллектуальные способы - возможно, Linq/native.Net провайдеры)?
ТАКЖЕ, просто быстрый и глупый дополнительный вопрос. Нужно ли включать код, например y.Dispose()
и y = Nothing
, или это будет позаботиться, поскольку переменная должна умереть в конце процедуры, правильно?
Спасибо!!