Excel文件里面的数据
   员工编号 考勤人员 1日 2日 3日
   22002712 员工1 休息 休息 休息
   22F00360 员工2 加班 休息 休息
   22F02832 员工3 产假 产假 产假
   22002827 员工4 加班 休息 休息
   22002713 员工5 加班 休息 休息public DataTable GetExcelDateTable(string _excelFileName)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + _excelFileName + ";" + "Extended Properties=Excel 8.0;";
            string _sheetName = "";
            DataSet ds = new DataSet();            using (OleDbConnection conn = new OleDbConnection(strConn))
            {
                conn.Open();
                System.Data.DataTable table = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                if (table.Rows.Count > 0)
                {
                    _sheetName = table.Rows[0]["TABLE_NAME"].ToString();
                }
                string strExcel = string.Format("select * from [{0}]", _sheetName);
                OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
                adapter.Fill(ds, _sheetName);
                conn.Close();
            }
            this._sheetName = _sheetName;
            return ds.Tables[_sheetName];
        }调用这个函数后,取到的DataTable中“员工编号”数据有个别取不到,初步分析,是由Excel中的数据格式不一样所致(在“员工编号”数据中前面加“C_XXXXXXXXX”,这样就都能取到,但是在Excel中“设置单元格格式”不管怎样设置,都不行!)希望能这样解决:Excel里面不管怎么设置,我都能以文本的格式取到值!

解决方案 »

  1.   

    trystring strConn = "Provider=Microsoft.  Jet.OLEDB.4.0;Data Source=  "+opnFileName+";  Extended Properties=  \"Excel 8.0;HDR=YES;IMEX=1\""; 
      

  2.   

    打开 excel设置单元格格式
    mySheet.Cells(1,9).NumberFormatLocal = "@" 
    Excel.Range r = mySheet.get_Range(mySheet.Cells[1, 1], mySheet.Cells[1,3]); 
    r.NumberFormat = "@"; 
      

  3.   

    先拷到txt里面然后在导入到数据库里面试试~
      

  4.   

    if (radioButton2.Checked)
                    {
                        sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sExcelFile + ";Extended Properties='Excel 12.0;HDR=NO;IMEX=1;'"; 
                    }
                    else
                    {
                        sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1\"";
                    }
      

  5.   


    加上这个属性就可以了:IMEX=1