{
//打開Excel的數據集連接
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;