不知道execl文件怎么回事。每次读到dataset里面的时候格式就扭曲了。我用的是最通用的办法。
private DataSet createDataSource()
    {
        string strCon;
        strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/Files/Employee.xls") + ";Extended Properties=Excel 8.0;";
        OleDbConnection con = new OleDbConnection(strCon);
        OleDbDataAdapter da = new OleDbDataAdapter("select * from [Employee$]", con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        return ds;
    }
有什么什么其他的办法。

解决方案 »

  1.   

    int indexSheet = 1;Excel.ApplicationClass Myexcel = new Excel.ApplicationClass();
    if (Myexcel == null)
    {
        MessageBox.Show("EXCEL无法启动!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        return;
    }Myexcel.Visible = true;
    Myexcel.UserControl = true;
    Excel.Workbooks Myworkbooks = Myexcel.Workbooks;
    Excel.Workbook Myworkbook = Myworkbooks.Open(@"C:\Book.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    Excel.Worksheet Myworksheet = (Excel.Worksheet)Myworkbook.Worksheets[indexSheet];
    Excel.Range rng3 = Myworksheet.get_Range("E1",Missing.Value);参考
      

  2.   

    string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path + ";" + "Extended Properties=\"Excel 8.0;IMEX=1\""; 
    检查单元格格式
    遍历单元格
    IMEX=1 数据内容也能出现不正常的现象,比如长数字可能会出现科学计数法的格式显示。比较好的做法是导出前,对所有单元格进行处理,在单元格内容前面加 '。
      

  3.   

    execl是从其他系统导入进来的。
    当我把execl导入到我的系统的时候。行数少的第一列的数字就不读。行数多的时候第一列的文字就不读。
    知不知道微软什么怎么搞的。一旦读到datatable里面数据格式就扭曲了。
    求解。
      

  4.   

    参见
    在使用 ADO.NET 导出 Excel 文件时,设置 IMEX=1 仍不能导出所有数据的解决办法

    http://dotnet.aspx.cc/file/ADO.NET-Excel-IMEX=1.aspx
      

  5.   

    服务器是windows2003,也是在注册表的那个位置吗?
      

  6.   

    小弟荣幸之至。2位.net的BOSS来问答问题。谢谢了。
      

  7.   

    不用这种方式,我有更好的方式,我的邮件[email protected]
      

  8.   

    excel的格式控制问题 默认的这种读取方式就这样,  当某一列的数据有的是纯数字 有的是字符和数字组合时就会这样子,可以在前八行中放一行  纯数字 然后再放一行组合数据,就是保证数据形式在前八行中都有出现 就可以了