点击导入之后,选择了一个excel文件,加入这个excel工作薄中有好几张工作表,必须要选择其中一张,然后再选择所需要的字段进行导入. 这个代码应该怎么写.
100分求救! 

解决方案 »

  1.   

    先读取EXCEL的所有工作表,
    用一个控件显示出来,让用户选择,
    然后读取该工作表的所有数据,
    用GRID显示三列
    1 选择,2.EXCEL列 3.导入表的列
    选择后,可以更改导入表的列名
    建立好对应关系,然后自己拼接SQL执行就行了表达能力不好,不知道看懂没有
      

  2.   

    str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +strfile+
       ";Extended Properties=Excel 8.0";

    strcon = str1;
        
    str1 = " SELECT * "+
       " FROM [Sheet1$]   ";
      // " WHERE ([人员编码] IS NOT NULL) AND  "+
      // " WHERE(Trim([人员编码]) <> '')   ";
       //" ORDER BY [人员编码] "; strtmp = str1;
                    
    tabtmp1 = clspubcnt.ref_cnt_tb(strcon,strtmp);  grid_file.DataSource = tabtmp1; 有了DateTable tabtmp1 字段名称不就有了 ?
      

  3.   


    excel=New Excel.Application
    excel.Open(文件名)
    For Each sheet As Excel.Worksheet In excel.Workbooks.Worksheets
        '
    Next
      

  4.   

    EXCEL自定义详细这里有http://bingning.net/VB/SOURCE/programing/index.html可以参考一下。
      

  5.   

    这个我他以前做这,给一个老师,他要打一excel的成绩表内容放在数据库中,来进行成绩查询,
    先把excel上传文件到网站目录下,再用gridview加载数据,可以选载是那个表如:sheet1,再让管理员选那几列用来作数据,因为成绩的excel做得大概相同,但列不太一样,这样后,再从gridview从导出datatable,再根据上面选的列的参数形成数据库的插入sql,再循环,如此,就是有点慢,500条,以内3秒,
      

  6.   

    如果你的Excel格式还可以,可以考虑用OleDb来连接Excel,如:
    string constr = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties=""Excel 8.0; Imex=2;HDR=No;""",
        "c:\\a.xls");
    OleDbConnection con = new OleDbConnection(constr);
    con.Open();
    DataTable ret = con.GetSchema("Tables");    // 得到Excel中的全部Sheet名
    foreach(DataRow row in ret.Rows){
        Console.WriteLine(row[2].ToString());   // DataRow[2]为Sheet名
        
        string sql = "SELECT * FROM [" + row[2].ToString() + "] where 1=2";// 选出指定Sheet的全部列
        OleDbCommand com = new OleDbCommand(sql, con);
        OleDbDataAdapter dap = new OleDbDataAdapter(com);
        DataTable cols;
        dap.Fill(cols);    foreach(DataColumn col in cols.Columns){
            Console.WriteLine(col.ColumnName);   // 循环输出当前Sheet的列名
        }
    }con.Close();
      

  7.   

    怎么样把sheet的名称绑定到combobox呢?
      

  8.   

                OleDbConnection objConn = null;
                DataTable dt = null;            try
                {
                    String connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile
                                        + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
                    objConn = new OleDbConnection(connString);
                    objConn.Open();
                    //dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });
                    if (dt == null)
                    {
                        return null;
                    }             然后把combox和dt["TABLE_NAME"]绑定就行了...