這裏貼的代碼是讀取本地文件系統中的excel
//讀取EXCEL的方法 (用範圍區域讀取數據)
private static DataTable GetExcelTableByOleDB(string excelFilePath)
{
//Excel連接
OleDbConnection conn = null;
DataTable dataTable = null;
try
{
//數據表
DataSet ds = new DataSet();
//獲取文件擴展名
string extension = System.IO.Path.GetExtension(excelFilePath);
string fileName = System.IO.Path.GetfileName(excelFilePath);
switch (extension)
{
//HDR=YES,略過第一行數據;IMEX=1,只讀方式打開
case ".xls":
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFilePath + ";" + "Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"");
break;
case ".xlsx":
conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFilePath + ";" + "Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1;\"");
break;
default:
conn = null;
break;
}
if (conn == null)
{
return null;
}
conn.Open();
//獲取Excel中所有Sheet表的信息
System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//獲取Excel的第一個Sheet表名
string tableName = schemaTable.Rows[0][2].ToString().Trim();
string strSql = "select * from [" + tableName + "]";
//獲取Excel指定Sheet表中的信息
OleDbCommand objCmd = new OleDbCommand(strSql, conn);
OleDbDataAdapter myData = new OleDbDataAdapter(strSql, conn);
myData.Fill(ds, tableName);//填充數據
//dataTable即爲excel文件中指定表中存儲的信息
dataTable = ds.Tables[tableName];
}
catch(Exception e){
ExceptionHelper.throwException(e, "解析excel文件出錯");
}
finally
{
if (conn != null) { conn.Close(); }
}
return dataTable;
}