tisdag, maj 12, 2009

Hämta data ur en XLS fil med C#

Ibland behöver man läsa data ur en xls eller en xlsx fil från en websida eller ett program. Det kan man enkelt göra genom att hämta datat till ett DataTable precis som från en sql databas.
Skapa följande metod med fyra indata fält.
inFil = komplett filnamn med sökväg till excelfilenfliknamn = flikens namnkolumn = kolumnens namn ex A eller GsokVarde = det du söker

private DataTable LoadXLS(string inFil, String flikNamn, String kolumn, String sokVarde)
{
DataTable dataTable = new DataTable(flikNamn);
try
{
string sqlString = "SELECT * FROM [" + flikNamn + "$] WHERE " + kolumn + " = " + sokVarde;
string strConnectionString = "";
if(inFil.Trim().EndsWith(".xlsx"))
{
strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", inFil);
}
else if(inFil.Trim().EndsWith(".xls"))
{
strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";", inFil);
}
OleDbConnection SQLConn = new OleDbConnection(strConnectionString);
SQLConn.Open();
OleDbDataAdapter SQLAdapter = new OleDbDataAdapter();
OleDbCommand selectCMD = new OleDbCommand(sqlString, SQLConn);
SQLAdapter.SelectCommand = selectCMD; SQLAdapter.Fill(dataTable);
SQLConn.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
return dataTable;
}

Inga kommentarer: