String targetPath = System.IO.Path.GetFullPath(@"..\..\CopyExcel\temp.xls");
string excelonstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + targetPath + ";" +
"Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
OleDbConnection excelcon = new OleDbConnection(excelonstr);
DataSet _tempds = new DataSet();
excelcon.Open();
DataTable sheetNames = excelcon.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string fristsheetName = sheetNames.Rows[0]["TABLE_NAME"].ToString();//获许第一个sheet名字
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + fristsheetName + "]", excelonstr);
oada.Fill(_tempds);
//构建一个新的Datatable
DataTable retable = new DataTable();
retable.Columns.Add("barcode", typeof(string));
retable.Columns.Add("jz", typeof(double));
retable.Columns.Add("wlgg", typeof(string));
retable.Columns.Add("wlh", typeof(string));
retable.Columns.Add("mz", typeof(double));
if (_tempds.Tables.Count == 0 || _tempds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("所倒入的EXCEL未有数据.");
return;
}
foreach (DataRow dr in _tempds.Tables[0].Rows)
{
object objjz = dr["aa"];
object objbarcode = dr["bb"];
object objwlgg = dr["cc"];
object objwlh = dr["dd"];
object objmz = dr["ee"];
decimal dmz = 0.00m;
if (objjz is DBNull || objbarcode is DBNull || objwlgg is DBNull || objwlh is DBNull) continue;
try
{
dmz = Convert.ToDecimal(objmz);
}
catch
{
MessageBox.Show("'aa'一列有错误,请更改.");
}
retable.Rows.Add(dr["aa"].ToString(), Convert.ToDecimal(dr["bb"]), dr["cc"], dr["dd"], dmz);
}