導出Excle文件中數據到數據集

try

{

//打開Excel的數據集連接        

DataSet ds = new DataSet();
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + ExcelFileFullName + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();

string strExcelSql = "";
OleDbDataAdapter myCommand = null;
strExcelSql = string.Format("select * from [{0}]", sheetNames[0]); //sheetNames[0]爲excel中工作薄的名稱,如名稱中不帶$,則需在[]中加上$,如:[Customers$]

myCommand = new OleDbDataAdapter(strExcelSql, strConn);
myCommand.Fill(ds, sheetNames[0]);//填充sheet表單中數據到Dataset中
DataTable table = ds.Tables[0]; //取Dataset中的第一個表作爲數據源:可根據個人需求更改
if (table == null || table.Rows == null || table.Rows.Count == 0)
return ;

//當前檢查字段英文名
string fieldEnName = string.Empty;
//當前檢查字段是否可空
bool isCanNull = true;
//當前檢查字段的長度
int fieldLength = 0;

foreach (DataRow dr in fieldSTable.Rows)//通過字段表來檢查:外層循環
{
fieldEnName = dr["Fieldenname"].ToString();
isCanNull = Convert.ToBoolean(dr["Iscannull"]);
fieldLength = Convert.ToInt32(dr["Fieldlength"]);
if (table.Columns[fieldEnName] != null)//判斷Excel導出的表中是否存在指定的列
{
for (int row = 1; row < table.Rows.Count; row++)
{
//檢查值是否爲空
if (!isCanNull)
{
object value = table.Rows[row][fieldEnName];
if (value == null)
msgList.Add("不可空字段" + fieldEnName + ",值爲空!");
}
}
}
else
{
msgList.Add("字段" + fieldEnName + "不存在!");
result = false;
}

}

}
catch (Exception ex)
{

}
return result;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章