高分求从excel直接导入到sql数据库的代码。 急需从excel直接导入到sql数据库的代码,希望各位前辈帮助,为方便学习 须详细解释谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把excel导入数据库,能导入的只是一些表格不是特别复杂,也就是不出现表格嵌套可以使用下面这个方法导入;思路:(1)、把excel数据读入到dataset中;(2)、建立相应结构的数据表格(3)、把dataset中的数据更新到数据表中可以顺利实现你的目标,代码给一些简单的可以参考哦! http://support.microsoft.com/kb/306023/EN-US/ 下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。insert into table1SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions 1:直接用数据库(如果你的表结构相对固定)可以用sql server 的数据转换功能, 然后保存成包, 2:用代码; 太多了,自己动手搜索吧 http://dev.csdn.net/article/41/41040.shtm 可以在excel中用vba在工具栏中建立按钮,将表格中的数据写成xml串,然后传到一个asp页或asp.net或页,然后在web页中将数据写入数据库中。 用第三方控件把infragistics,c1的都可以阿 // 我的方法是把Excel的数据导入DataSet,然后把DataSet导入数据库,以下的方法是把Excel的数据导入DataSet public static DataSet GetExcelContent(string filepath) { string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = "+filepath+";Extended Properties='Excel 8.0;IMEX=1'" ; System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection (strCon) ; string strCom = " SELECT * FROM [Sheet1$] " ; myConn.Open( ) ; System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom,myConn ) ; //创建一个 DataSet对象 DataSet myDataSet = new DataSet( ); //得到自己的DataSet对象 myCommand.Fill (myDataSet,"[Sheet1$]") ; //关闭此数据链接 myConn.Close(); return myDataSet; } //该方法是读出excel表的内容,到dataset中//------------------------然后通过insert插入数据库就可以了----------- string myExecuteQuery= "SELECT * INTO TableName FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=c:\\xxx.xls',[Sheet1$])";OleDbConnection myConnection = new OleDbConnection(myConnectionString);OleDbCommand myCommand = new OleDbCommand(myExecuteQuery, myConnection);myCommand.Connection.Open();myCommand.ExecuteNonQuery();myConnection.Close(); 你可以dataset 导入 excel参考http://community.csdn.net/Expert/topic/3077/3077526.xml?temp=.8746912http://www.dev-club.com/club/bbs/showEssence.asp?id=26350http://dev.csdn.net/Develop/article/18/18623.shtmhttp://community.csdn.net/Expert/topic/3112/3112296.xml?temp=.926861http://dotnet.aspx.cc/ShowDetail.aspx?id=BF0A54F9-C7C7-4200-BD9A-802AC1F5DE50http://expert.csdn.net/Expert/TopicView1.asp?id=2928057www.foxhis.com/powermjtest/原文代码:private void Button1_Click(object sender, System.EventArgs e){ //写入Excel的方法: //定义需要参数。 string SourceFile="Data.XLS"; //源文件名称。 string TemplatePath=Server.MapPath("ExcelTemplate"); //存放源文件的文件夹路径。 string DownloadPath=Server.MapPath("ExcelDownload"); //副本的文件夹路径。 //副本的文件名。 string TempFileName = DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + ".XLS"; object missing = System.Reflection.Missing.Value; Excel.Application myExcel=new Excel.Application(); //打开新文件 myExcel.Application.Workbooks.Open(TemplatePath+"\\"+SourceFile,missing,missing,missing,missing, missing,missing,missing,missing,missing,missing, missing,missing); Excel.Workbook myBook=myExcel.Workbooks[1]; Excel.Worksheet curSheet = (Excel.Worksheet)myBook.Sheets[2]; string DownloadFilePath=DownloadPath+"\\"+TempFileName; int i=0; while (i<=10) { myExcel.Cells[4+i,2]=i.ToString(); myExcel.Cells[4+i,3]=i.ToString(); myExcel.Cells[4+i,4]=i.ToString(); myExcel.Cells[4+i,5]=i.ToString(); myExcel.Cells[4+i,6]=i.ToString(); i++; } myBook.Saved=true; //myBook.SaveAs(DownloadFilePath,missing,"","",false,false,Excel.XlSaveAsAccessMode.xlNoChange,1,false,missing,missing); myBook.PrintPreview(0); //myBook.PrintOut(missing,missing,missing,missing,missing,missing,missing,missing); myBook.Close(false, null,null); myExcel.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel); myBook = null; myExcel = null; GC.Collect(); //Response.Redirect("ExcelDownload//"+TempFileName); //下载文件} 这两天太忙了,给一点代码给楼主吧,前面说了一下我的思路,现在给点简单的代码!/*读取Excel表格中的数据到DataDSet*/string str="c:\\例子.xls";string connstr = "Driver={Microsoft Excel Driver (*.xls)};DBQ="+str;string sqlstr = "select * from [sheet1$]";DataSet myds = new DataSet();OdbcConnection myconn = new OdbcConnection(connstr);OdbcDataAdapter myda = new OdbcDataAdapter(sqlstr,connstr);myda.Fill(myds); /*获取Excel表格中的字段名称*/string[] ColumnsNames=new string[myds.Tables[0].Columns.Count];for(int i=0;i<myds.Tables[0].Columns.Count;i++){//获取列的集合的名称ColumnsNames[i]=myds.Tables[0].Columns[i].ColumnName.ToString();}/*创建该结构的数据表,在某个数据库中*//*往数据库表中导入记录*/ string sFileName="要导入的文件";//先导入数据集 string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+sFileName+";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"; string strSQLCommand="SELECT * FROM [Sheet1$]"; DataSet ds=new DataSet(); System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strSQLCommand, conn); myCommand.Fill(ds); //然后导入数据库DataSet dsD=new DataSet(); string strSQL="select * from 表"; SqlDataAdapter sqlsel2= new SqlDataAdapter(strSQL,this.sqlConnection1); sqlsel2.Fill(dsD); sqlsel2.Update(ds); 哎。怎么说呢。我虽然非常想用c#可是经理要求用vb做呵呵。那位能给个vb的代码啊。最好是拿来就用的我是个初学者啊。谢谢各位前辈师兄了。 关于向dataGridView追加行的实现? dropdownlist三级级联的问题. 客户端如何获得这个值 在ASP.NET中页面怎样打印DataGrid中的数据,格式要好,求一个好的方法! 在登陆时加上验证码 帮忙啊,急 请大家帮我看一下这个代码。 水晶报表超难题(谁能用代码实现水晶报表10.0所有按钮的类似功能) 有没有在南京的.net高手? DataGrid问题 怎样给EXCEL.CELL赋值??? 内容重复提交!?
思路:
(1)、把excel数据读入到dataset中;
(2)、建立相应结构的数据表格
(3)、把dataset中的数据更新到数据表中
可以顺利实现你的目标,代码给一些简单的可以参考哦!
insert into table1
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
可以用sql server 的数据转换功能, 然后保存成包,
2:用代码;
太多了,自己动手搜索吧
infragistics,c1的都可以阿
public static DataSet GetExcelContent(string filepath)
{
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = "+filepath+";Extended Properties='Excel 8.0;IMEX=1'" ;
System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection (strCon) ;
string strCom = " SELECT * FROM [Sheet1$] " ;
myConn.Open( ) ;
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom,myConn ) ;
//创建一个 DataSet对象
DataSet myDataSet = new DataSet( );
//得到自己的DataSet对象
myCommand.Fill (myDataSet,"[Sheet1$]") ;
//关闭此数据链接
myConn.Close();
return myDataSet;
}
//该方法是读出excel表的内容,到dataset中
//------------------------然后通过insert插入数据库就可以了-----------
OleDbCommand myCommand = new OleDbCommand(myExecuteQuery, myConnection);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
你可以dataset 导入 excel参考
http://community.csdn.net/Expert/topic/3077/3077526.xml?temp=.8746912
http://www.dev-club.com/club/bbs/showEssence.asp?id=26350http://dev.csdn.net/Develop/article/18/18623.shtm
http://community.csdn.net/Expert/topic/3112/3112296.xml?temp=.926861
http://dotnet.aspx.cc/ShowDetail.aspx?id=BF0A54F9-C7C7-4200-BD9A-802AC1F5DE50
http://expert.csdn.net/Expert/TopicView1.asp?id=2928057www.foxhis.com/powermjtest/
原文代码:
private void Button1_Click(object sender, System.EventArgs e)
{
//写入Excel的方法:
//定义需要参数。
string SourceFile="Data.XLS"; //源文件名称。
string TemplatePath=Server.MapPath("ExcelTemplate"); //存放源文件的文件夹路径。
string DownloadPath=Server.MapPath("ExcelDownload"); //副本的文件夹路径。
//副本的文件名。
string TempFileName = DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + ".XLS";
object missing = System.Reflection.Missing.Value;
Excel.Application myExcel=new Excel.Application();
//打开新文件
myExcel.Application.Workbooks.Open(TemplatePath+"\\"+SourceFile,missing,missing,missing,missing,
missing,missing,missing,missing,missing,missing, missing,missing);
Excel.Workbook myBook=myExcel.Workbooks[1];
Excel.Worksheet curSheet = (Excel.Worksheet)myBook.Sheets[2];
string DownloadFilePath=DownloadPath+"\\"+TempFileName;
int i=0;
while (i<=10)
{
myExcel.Cells[4+i,2]=i.ToString();
myExcel.Cells[4+i,3]=i.ToString();
myExcel.Cells[4+i,4]=i.ToString();
myExcel.Cells[4+i,5]=i.ToString();
myExcel.Cells[4+i,6]=i.ToString();
i++;
}
myBook.Saved=true;
//myBook.SaveAs(DownloadFilePath,missing,"","",false,false,Excel.XlSaveAsAccessMode.xlNoChange,1,false,missing,missing);
myBook.PrintPreview(0);
//myBook.PrintOut(missing,missing,missing,missing,missing,missing,missing,missing);
myBook.Close(false, null,null);
myExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
myBook = null;
myExcel = null;
GC.Collect();
//Response.Redirect("ExcelDownload//"+TempFileName); //下载文件
}
/*读取Excel表格中的数据到DataDSet*/
string str="c:\\例子.xls";
string connstr = "Driver={Microsoft Excel Driver (*.xls)};DBQ="+str;
string sqlstr = "select * from [sheet1$]";
DataSet myds = new DataSet();
OdbcConnection myconn = new OdbcConnection(connstr);
OdbcDataAdapter myda = new OdbcDataAdapter(sqlstr,connstr);
myda.Fill(myds);
/*获取Excel表格中的字段名称*/
string[] ColumnsNames=new string[myds.Tables[0].Columns.Count];
for(int i=0;i<myds.Tables[0].Columns.Count;i++)
{
//获取列的集合的名称
ColumnsNames[i]=myds.Tables[0].Columns[i].ColumnName.ToString();
}
/*创建该结构的数据表,在某个数据库中*//*往数据库表中导入记录*/
//先导入数据集
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+sFileName+";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
string strSQLCommand="SELECT * FROM [Sheet1$]";
DataSet ds=new DataSet();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strSQLCommand, conn);
myCommand.Fill(ds);
//然后导入数据库
DataSet dsD=new DataSet();
string strSQL="select * from 表";
SqlDataAdapter sqlsel2= new SqlDataAdapter(strSQL,this.sqlConnection1);
sqlsel2.Fill(dsD);
sqlsel2.Update(ds);