我以前是做ASP.NET的,没做Window程序,现在就是要实现这么一个功能,有个输入框,让用户选择哪个xls文件,再选择到入到哪个Access数据库,这俩个是用哪个控件啊?对c#的控件不是很熟悉。
如何取得Excel里的数据啊?不规则的

解决方案 »

  1.   

    没人回答?我自己先顶下咯
    怎么得到Excel单元格的数据?
      

  2.   

    不规则是什么意思????  导入数据从来都是要求格式的,导入不规则的格式是什么意思????导入结果都不可预测,还导来干嘛.
    把Excel当数据库来读用OleDb. 用Reader,读一行写一行进Access最方便了.哪来用的是哪控件啊,用OpenFileDialoge选文件不就行了?你还要什么控件? 如果你还需要显示结果就再加个DataGrid啊.
      

  3.   

    选择到入到哪个Access数据库。这个怎么选?用COMBOBOX?
    读数据的话OLEDB
    不规则的东西人脑判断
      

  4.   

    string strConn;
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source="+Server.MapPath("通讯录.xls")+";"+
    "Extended Properties=Excel 8.0;";
    OleDbConnection conn = new OleDbConnection(strConn);
    OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [1$]", strConn);
    DataSet myDataSet = new DataSet();
    myCommand.Fill(myDataSet);读规则的EXCEL,
    不规则的你用READER自己判断格式
      

  5.   

    我说的不规则就是说,有合并单元格,第一行有数据。
    我想循环出来,但不知道为什么老抱错,帮我看下这段代码,报错提示:未处理的“System.Data.OleDb.OleDbException”类型的异常出现在 system.data.dll 中
    public void ExcelToAccess(string Path)
    {
    datasource= datasource.Substring(0,datasource.LastIndexOf("."));
    ObjApp.Workbooks.Open(@datasource,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
    ObjSheets=ObjApp.Worksheets;//引用工作簿中的工作表
    ObjSheet=(Excel._Worksheet)ObjSheets.get_Item(1);//得到工作表组中第一个工作表
    string[] Array = new string[6];
    Array[0]=ObjSheet.Cells.get_Range("B2",Missing.Value).Text.ToString();//读出B2单元的内容
    Array[1]=ObjSheet.Cells.get_Range("D2",Missing.Value).Text.ToString();
    Array[2]=ObjSheet.Cells.get_Range("G2",Missing.Value).Text.ToString();
    Array[3]=ObjSheet.Cells.get_Range("K2",Missing.Value).Text.ToString();
    Array[4]=ObjSheet.Cells.get_Range("O2",Missing.Value).Text.ToString();
    Array[5]=ObjSheet.Cells.get_Range("R2",Missing.Value).Text.ToString(); OleDbConnection dbconn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source=Path");
    dbconn.Open();
    OleDbCommand cmd = new OleDbCommand();
    cmd.CommandText="insert into Tabl (线名,行别,检测起点里程,检测终点里程,检测人员,检测日期)values(Array[0],Array[1],Array[2],Array[3],Array[4],Array[5])";
    cmd.CommandType = CommandType.Text;
    OleDbDataReader reader =cmd.ExecuteReader();
    }