现在要把excel的数据导入sql,但execl的数据要转换,比如姓名一列,导入sql的话,就要存入每个姓名的ID,而不是姓名本身?请教这种怎么做?
我的思路是,先读excel,再把数据转换,然后再一行一行导入sql,不知道对不对?
请教怎么读excel,最好有例子,谢谢

解决方案 »

  1.   

    读EXCEL可能通过office的EXCEL组件来读
    或者通过oledb来读
    在这里搜索一下就应该可以搜索到很多例子
    至于转换的话,建议像楼上所讲的那样,先导入到临时表,再通过联接来操作,效率应该会好些
      

  2.   

    path1=this.openFileDialog1.FileName;
    //设置空值
    object objMissing=System.Reflection.Missing.Value;
               //打开excel文件
     my=new Excel.ApplicationClass();
             
    my.Visible=true;//打开工作簿
    Excel.Workbook mybook=my.Workbooks.Open(path1.Trim(),objMissing,objMissing, objMissing, 
    objMissing, objMissing, objMissing, 
    objMissing, objMissing, objMissing, 
    objMissing, objMissing, objMissing);Excel.Worksheet mysheet=(Excel.Worksheet)mybook.Worksheets.get_Item(1);
    //分割字符串
    string s,a,b;
    a="";
    b="";
    s=((Excel.Range)mysheet.Cells[16,1]).Value.ToString();//读取数据
    MessageBox.Show( "字符为 " + s);----------------------------
    这是读取EXCEL文件中的数据,
      

  3.   


    先要添加    项目--引用--com--Microsoft excel 9.0 library对象库上面有一句错了
     Excel.ApplicationClass my=new Excel.ApplicationClass();
      

  4.   

    没找到 Microsoft excel 9.0 library 这个啊?
      

  5.   

    /// <summary> 
            /// 读取Excel文档
            /// </summary> 
            /// <param name="strExcelFileName">文件名称</param>
            /// <param name="strSheetName">要读取的Sheet名</param>
            /// <returns>返回一个数据表</returns>
            /// <res>
            /// 基于OleDB的方式读取指定数据库数据
            /// 只能读取一页Sheet
            /// </res>
            public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
            {
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 8.0;";
                string strExcel = string.Format("select * from [{0}$]", strSheetName);
                DataSet ds = new DataSet();            using (OleDbConnection conn = new OleDbConnection(strConn))
                {
                    conn.Open();                OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
                    adapter.Fill(ds, strSheetName);                conn.Close();
                }
                return ds.Tables[strSheetName];
            }这样转成DataTable你就爱怎么操作怎么操作吧~
      

  6.   

    excel有相应得组件给你用,网上很多得
      

  7.   

    把Excel也当成数据库,现从Excel中得到结果集,然后再把结果集插入到目标数据库的表中。