我用的
//源的定义
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source= " + strExcelFileName + "; " + "Extended Properties= 'Excel 8.0;HDR=NO;IMEX=1 '; ";
// string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 8.0;"; //Sql语句
string strExcel = string.Format("select * from [{0}$] ", strSheetName); // 这是一种方法
// string strExcel = "select * from [sheet1$] "; //定义存放的数据表
DataSet ds = new DataSet(); //连接数据源
OleDbConnection conn = new OleDbConnection(strConn); try
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn); adapter.Fill(ds, strSheetName);
}
catch (Exception ex)
{
string _Message = "打开Excel出错";
MessageBox.Show(_Message.ToString() + ex.ToString()); }
finally
{
conn.Close();
conn.Dispose();
} //适配到数据源
conn.Close();
return ds.Tables[strSheetName];
这个做的导入,但现在有一个问题
dt.Columns[i].ColumnName = Convert.ToString(dt.Rows[0][i]);如果excel中的某一列是数字类型的话,即使第一行是文本,但运行这句时会出错,其它的就不会,哪怕说下面的数据是空都可以,但就是不可以是数字,有谁遇到过这个问题呢?怎么解决啊?
//源的定义
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source= " + strExcelFileName + "; " + "Extended Properties= 'Excel 8.0;HDR=NO;IMEX=1 '; ";
// string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 8.0;"; //Sql语句
string strExcel = string.Format("select * from [{0}$] ", strSheetName); // 这是一种方法
// string strExcel = "select * from [sheet1$] "; //定义存放的数据表
DataSet ds = new DataSet(); //连接数据源
OleDbConnection conn = new OleDbConnection(strConn); try
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn); adapter.Fill(ds, strSheetName);
}
catch (Exception ex)
{
string _Message = "打开Excel出错";
MessageBox.Show(_Message.ToString() + ex.ToString()); }
finally
{
conn.Close();
conn.Dispose();
} //适配到数据源
conn.Close();
return ds.Tables[strSheetName];
这个做的导入,但现在有一个问题
dt.Columns[i].ColumnName = Convert.ToString(dt.Rows[0][i]);如果excel中的某一列是数字类型的话,即使第一行是文本,但运行这句时会出错,其它的就不会,哪怕说下面的数据是空都可以,但就是不可以是数字,有谁遇到过这个问题呢?怎么解决啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货