日期:2014-05-18  浏览次数:20417 次

用Excel.application 读取excel2007中的全部数据存入数据库中
谁帮我写一段代码,用Excel.application 读取excel2007中的全部数据存入数据库中, 谢谢啊!

------解决方案--------------------
下面代码可以获取数据集,剩下更新到数据库即可
C# code

string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = c:\\sample.xls;Extended Properties=Excel 8.0" ; 
OleDbConnection myConn = new OleDbConnection ( strCon ) ; 
string strCom = " SELECT * FROM [Sheet1$] " ; 
myConn.Open ( ) ; 

//打开数据链接,得到一个数据集 
OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ; 

//创建一个 DataSet对象 
myDataSet = new DataSet ( ) ; 

//得到自己的DataSet对象 
myCommand.Fill ( myDataSet , "[Sheet1$]" ) ; 

//关闭此数据链接 
myConn.Close ( ) ;

------解决方案--------------------
楼上的,你用的是数据库方法,不是人家要求的Excel.application 方法啊。
------解决方案--------------------
string cnString="Provider=msdaora.1;Data source=Name; ";
cnString=cnString+"user id=UserName;password=Password";
try
{
 OleDbConnection cn=new OleDbConnection (cnString);
 cn.Open ();
 try
 {
  string s="select * from Name.TableName";
  OleDbCommand cmd=new OleDbCommand (s,cn);
  OleDbDataReader dr=cmd.ExecuteReader ();
  Excel.Application xlApp = new Excel.Application();
  if(xlApp==null){MessageBox.Show ("Can't open Excel!");return;}
  xlApp.Application .Workbooks .Add (true);
  int row=2,fieldcount;
  fieldcount=dr.FieldCount ;
  for(int col=0;col<fieldcount;col++) xlApp.Cells [1,col+1]=dr.GetName(col);
  while (dr.Read ())
  {
   for(int col=0;col<fieldcount;col++) 
    xlApp.Cells [row,col+1]=dr.GetValue(col).ToString();
    row++;
  }
  xlApp.Visible =true;
  xlApp=null;
 }
 catch(Exception ex ){MessageBox.Show (ex.Message );}
 finally {cn.Close();}
}
catch(Exception ex){MessageBox.Show (ex.Message );}
}



这个是从数据库写excel,你改改就行了
------解决方案--------------------
可能还要配dcom的权限
------解决方案--------------------
关注一下
------解决方案--------------------
这种情况用Excel.application 是走弯路。

直接当Excel是数据库来读取在保存到别的数据库。
------解决方案--------------------
用数据库导入就可以了
------解决方案--------------------
网上有很多这方面的源码