giovedì 3 gennaio 2013

Importare file excel da vb.net

Da VB.NET potrebbe nascere la necessità di importare un file excel, sia formato 2003 che 2007.
Dopo svariate prove, ho trovato questa libreria compatibile sia con la versione .net 2.0 che della relativa versione compact per dispositivi mobile.

http://exceldatareader.codeplex.com/

Anzitutto occorre scaricare le librerie da importare

http://exceldatareader.codeplex.com/downloads/get/80427

Dopo aver scaricato ed estratto le due dll, sarà possibile importare il file excel.


Imports ICSharpCode
Imports Excel




Dim stream As FileStream = File.Open(filePath, FileMode.Open, FileAccess.Read)

'1. Reading from a binary Excel file ('97-2003 format; *.xls)
Dim excelReader As IExcelDataReader = ExcelReaderFactory.CreateBinaryReader(stream)
'...
'2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
Dim excelReader As IExcelDataReader = ExcelReaderFactory.CreateOpenXmlReader(stream)
'...
'3. DataSet - The result of each spreadsheet will be created in the result.Tables
Dim result As DataSet = excelReader.AsDataSet()
'...
'4. DataSet - Create column names from first row
excelReader.IsFirstRowAsColumnNames = True
Dim result As DataSet = excelReader.AsDataSet()

'5. Data Reader methods
While excelReader.Read()
    'excelReader.GetInt32(0);
End While

'6. Free resources (IExcelDataReader is IDisposable)
excelReader.Close()