我在读excel的时候文本类型的表格就能读出数据
如果是常规类型的表格输入是数字就读不出数据,
这是为什么啊?
怎么才能不改excel的单元格类型读出数字啊
代码为
DataTable dt_ExcelTable = new DataTable();
try
{
m_Group_id=GetGroupFormFilename(PathName);

string sConnectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source="+PathName+";Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(sConnectionstring);

objConn.Open();
System.Data.OleDb.OleDbCommand objCmdSelect = new System.Data.OleDb.OleDbCommand("SELECT * FROM ["+TableName+"$]", objConn);
System.Data.OleDb.OleDbDataAdapter objAdapter = new System.Data.OleDb.OleDbDataAdapter();
objAdapter.SelectCommand = objCmdSelect;
DataSet ds_Excel = new DataSet();
objAdapter.Fill(ds_Excel, "XLData");
dt_ExcelTable = ds_Excel.Tables[0];


//dt_ExcelTable为原始excel表信息 objConn.Close();

}
catch(Exception ex)
{
dt_ExcelTable=null;
}
string year_month=dt_ExcelTable.Rows[2]["f2"].ToString();
为什么我读别的字段能读出来就这个不行

解决方案 »

  1.   

    dt_ExcelTable.Rows[2]["f2"].ToString();
    这里面有值么???
      

  2.   

    如果出错,检查一下,看该字段的值是否为null
      

  3.   

    如果excel中保存的数字格式前面有一个'就可以读进来,例如: '10,就可以
      

  4.   

    有阿
    是数字
    标题是文本的旧不行
    应该是
    dt_ExcelTable.Rows[0]["f2"].ToString()==“大胆地”
    dt_ExcelTable.Rows[1]["f2"].ToString()==“1”
      

  5.   

    不要用数据库驱动,直接通过COM接口操作EXCEL文件吧