怎样从excel读取指定行和列的数据,然后写入数据库中,最好有CODE,谢谢!

解决方案 »

  1.   

    /// <summary>
            /// 生成Excel表的内部表名称集合
            /// </summary>
            /// <param name="filename"></param>
            /// <returns></returns>        private void ImportTableNames(string filename)
            {            Filename = filename;
                string xls_source = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Filename + ";" + "Extended Properties=Excel 8.0;";
                OleDbConnection xls_con = new OleDbConnection(xls_source);
                xls_con.Open();
                try
                {
                    DataTable schematable = xls_con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                    TableNames = new string[schematable.Rows.Count];
                    for (int i = 0; i < schematable.Rows.Count; i++)
                    {
                        TableNames[i] = schematable.Rows[i][2].ToString();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(filename + ex.Message, "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                }
                xls_con.Close();
                //return m_tablenames;
            }
            /// <summary>
            /// 生成Excel表相对应的导入表
            /// </summary>
            /// <returns></returns>
            public override DataTable InportTable(string filename, string tablename)
            {
                OutTable = new DataTable();                            if (filename.Equals(""))
                      MessageBox.Show("必须选择一个要导入的文件", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                string source = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;";
                OleDbConnection xls_con = new OleDbConnection(source);
                xls_con.Open();
                string xls_select = "";            
                OleDbDataAdapter xls_Command = null;
                xls_select = "select * from [" + tablename + "]";
                xls_Command = new OleDbDataAdapter(xls_select, xls_con);
                try
                {
                    DataTable dt = new DataTable();
                    dt.Clear();
                    xls_Command.Fill(dt);
                    OutTable = dt;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(filename + ex.Message, "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                }
                xls_con.Close();
                    
                
                return OutTable;
            }
      

  2.   

    打开excel模板,遍历获取
    sheet=(Excel._Worksheet)book.Worksheets[1];                
    for(int i=1;i<=sheet.Rows.Count;i++)
    {}
      

  3.   

    将excel当做access数据库。
    连接字符串(excel2003)"provider=MicroSoft.Jet.Oledb.4.0;extended Properties='excel 8.0';Data Source="+Path;
    读取数据表(sheet1、sheet2)中的数据到DataSet中
    将DataSet中指定的行和列 插入Oracle