『壹』 .net如何导入导出excel内容(求实例)
可以用ADO.net把Excel当成数据表来导入,这样编程序很省事,但是如果你的excel数据复杂会出错,或者数据遗失的情况所以保险点还是调用Excel Automation来读取ADO.NET形式例子:http://www.codeproject.com/KB/office/excel_using_oledb.aspxAutomation方式:http://www.codeproject.com/KB/cs/Automating_MS_Excel_Docs.aspx
『贰』 c#.net从excel表导入数据到网页而达到快速增加数据库行的操作
这样的问题很多了 你需要一个放一个fileupload控件 用来上传excel ,还需要在项目里建一个文件夹用来存放你要上传的excel 。因为系统总是先把文件传到服务器上再进行操作,而不是对每个人的桌面excel直接操作。using System.Data.SqlClient;using System.Data.OleDb; // 要加这两句public DataSet ExecleDs(string filenameurl, string table) // 这个函数就是将上传的excel读入dataset { string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'"; // 这里excel03 如要该成07版再问我或者网络 string strcom = "select *from [Sheet1$]"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); DataSet ds = new DataSet(); OleDbDataAdapter odda = new OleDbDataAdapter(strcom, conn); odda.Fill(ds, table); return ds; } protected void Button4_Click(object sender, EventArgs e) // 你的那个确定按钮{ SqlConnection con = new SqlConnection(); con.ConnectionString = "server='CWJMXT-14\\SQLEXPRESS';database='E-test';uid='sa';pwd=‘..'" ; // 你自己的数据库连接 if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件 { Response.Write("<script>alert('请您选择Excel文件')</script> "); return;//当无文件时,返回 } string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名 if (IsXls != ".xls") { Response.Write("<script>alert('只可以选择Excel文件')</script>"); return;//当选择的不是Excel文件时,返回 } con.Open(); string filename = FileUpload1.FileName; //获取Execle文件名 DateTime日期函数 // Label2.Text = filename; string savePath = Server.MapPath(("~\\upfiles\\") + filename);//Server.MapPath 获得虚拟服务器相对路径 FileUpload1.SaveAs(savePath); //SaveAs 将上传的文件内容保存在服务器上 DataSet ds = ExecleDs(savePath, filename); //调用自定义方法 DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组 int rowsnum = ds.Tables[0].Rows.Count; if (rowsnum == 0) { Response.Write("<script>alert('Excel表为空表,无数据!')</script>"); //当Excel表为空时,对用户进行提示 } else { for (int i = 0; i < dr.Length; i++) { //string pininputdate = dr[i]["].ToString();//日期 excel列名【名称不能变,否则就会出错】 string insertstr = "insert into item1(试题组别,试题类型,试题题目,选项A,选项B,选项C,选项D,正确答案,随机或必出)values('" + dr[i][0].ToString() + "','" + dr[i][1].ToString() + "','" + dr[i][2].ToString() + "','" + dr[i][3].ToString() + "','" + dr[i][4].ToString() + "','" + dr[i][5].ToString() + "','" + dr[i][6].ToString() + "','" + dr[i][7].ToString() + "','" + dr[i][8].ToString() + "')"; //这里就是具体怎么样一行一行将dataset中的数据导入sql的 你也可以加一些其他判断什么的。 SqlCommand cmd = new SqlCommand(insertstr, con); try { cmd.ExecuteNonQuery(); } catch (MembershipCreateUserException ex) //捕捉异常 { Response.Write("<script>alert('导入内容:" + ex.Message + "')</script>"); } } Response.Write("<script>alert('Excle表导入成功!');location='itemmaintain.aspx'</script>"); } con.Close(); }
『叁』 .net上传EXCEL文件到服务器导入数据库,成功上传,但是导入时找不到文件,是不是导入时路径有问题
从代码来看,是先将上传的文件保存之后,使用Excelds方法来读取Excel文件中的数据,上传保存文件和读取数据的代码是在同一个代码段之中执行的,并且有提到“文件能在服务器上找到”,说明上传的文件有成功保存,故可以排除savePath值的问题。那么问题应该是读取数据这边的,即Excelds的问题了。从代码来看,Excelds有两个参数,目前是传入了savePath和filename,从此参数的结构来看应该是传入一个不含文件名的路径和一个文件名。但是,这里传入的savePath已经包含了文件名(第一个语句中有加入filename),所有猜测问题应该是传给Excelds的路径有问题,不应该包含文件名。
『肆』 C#.net与Excel的导入导出问题
1.如果我自己新建立一个Excel。然后把数据贴到里面。不管外面这个excel是否为打开状态,数据都能导入进去 –Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls"); 你已经写死了保存在FileName.xls 这样肯定是可以的呀2.可当我到程序中的数据导出后,想把这个excel中的数据再导入进系统。就出错了。每次在执行oleCon.Open();的 时候就有问题了,如果把那个excel在外面提前打开,再导入,就又能成功–导出肯定是没问题的 但导入的话肯定会出问题 a.Excel文件默认类型不是 导出来的数据类型 然而导入肯定是会出问题b.还有值得注意的事 Excel默认数据类型的情况下 不支持以0开头的数据 除非设置列表为文本==oleCon.Open();可以不要 OleDbDataAdapter本身就可以打开连接3.其他 你可以到我的博客http://hi..com/luosheng080128/blog/item/a19575cb8f24fcfa53664f33.html 有你想要的方法
『伍』 如何把Excel数据导入到数据库表中 asp.net
ASP.NET中将Excel表中的数据导入到数据库中的方法是利用可视化界面工具直接选择字段映射导入。1)接受数据导入的表已经存在。 insert into t1 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' , 'Excel 5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$); 2)导入数据并生成表。 select * into t1 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Excel 5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$); 3) 导入Excel中指定的列到数据库表中指定的列。 INSERT INTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET'MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0; HDR=YES; DATABASE=c:\\test.xls',sheet1$);需要注意的地方。1)外围应用配置器的设置。 从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。2)关闭Excel表。 如果在导入时要导入的Excel表格处于打开状态,会提示: “无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。”3)导入数据时,Excel的首行会作为表头,若导入到已存在的数据库表,则忽略首行。
『陆』 c#.net完成数据到excel表的导入与导出
下面的函数作用,将导出到EXCEL文件: private void DataTabletoExcel(System.Data.DataTable tmpDataTable,string strFileName){if (tmpDataTable == null){return;}int rowNum = tmpDataTable.Rows.Count;int columnNum = tmpDataTable.Columns.Count;int rowIndex = 1;int columnIndex = 0;Excel.Application xlApp = new Excel.ApplicationClass();xlApp.DefaultFilePath = "";xlApp.DisplayAlerts = true;xlApp.SheetsInNewWorkbook = 1;Excel.Workbook xlBook = xlApp.Workbooks.Add(true);//将DataTable的列名导入Excel表第一行foreach(DataColumn dc in tmpDataTable.Columns){columnIndex ++;xlApp.Cells[rowIndex,columnIndex] = dc.ColumnName;}//将DataTable中的数据导入Excel中for(int i = 0;i<rowNum; i++){rowIndex ++;columnIndex = 0;for (int j = 0;j<columnNum; j++){columnIndex ++;xlApp.Cells[rowIndex,columnIndex] = tmpDataTable.Rows[i][j].ToString();}}xlBook.SaveCopyAs(strFileName + ".xls");}
『柒』 C#.NET 上传Excel表格导入
你用的是什么sql,我给你个sql server的例子吧,很简单的例子,其他的自己去扩展了protected void Button1_Click(object sender, EventArgs e) { //路径 string path = FileUpload1.PostedFile.FileName; //这个是把EXCEL的表读到DataTable 的方法 DataTable dt = ExcelToTable(path); int count = 0; for (int i = 0; i < dt.Rows.Count; i++) { string jinshouren = dt.Rows[i][1].ToString(); string company = dt.Rows[i][2].ToString(); string people = dt.Rows[i][3].ToString(); string ty = dt.Rows[i][4].ToString(); string tel = dt.Rows[i][5].ToString(); string molible = dt.Rows[i][6].ToString(); string fanwei = dt.Rows[i][7].ToString(); string add = dt.Rows[i][8].ToString(); string QQ = dt.Rows[i][9].ToString(); string email = dt.Rows[i][10].ToString(); string laiyuan = dt.Rows[i][11].ToString(); string qingkuang = dt.Rows[i][12].ToString(); string test = dt.Rows[i][13].ToString(); string luxian = dt.Rows[i][14].ToString(); string jilu = dt.Rows[i][15].ToString(); string sql_select = string.Format("select count(*) from customer where Customername='{0}' and Customercompany='{1}' and Customermoblie='{2}'", people, company, tel); string num = help.ExcuteDataSet(sql_select, CommandType.Text).Tables[0].Rows[0][0].ToString(); if (num != "1") { string sql = string.Format(@"insert into customer (Customername,Customersex,Customerty,Customercompany,Customerbusiness,Customermoblie,Customerfax,Customertel,Customeraddress,CustomerQQ,CustomerEmail,roadline,Customernotes,teamwork,tracking) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}')", people, jinshouren, ty, company, fanwei, tel, laiyuan, molible, add, QQ, email, luxian, test, qingkuang, jilu); count = help.ExcuteNoneQuery(sql, CommandType.Text); } } if (count > 0) { ShowMsg("导入成功!"); } } public static DataTable ExcelToTable(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source='" + Path + "';" + "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); string strExcel = ""; OleDbDataAdapter myCommand = null; DataSet ds = null; strExcel = "select * from [sheet1$]";//EXCEL的当前页面的名称 myCommand = new OleDbDataAdapter(strExcel, strConn); ds = new DataSet(); myCommand.Fill(ds, "table1"); conn.Dispose(); return ds.Tables[0]; }
『捌』 C#.NET中excel的导入导出
public static void DataTabletoExcel(System.Data.DataTable tmpDataTable,string strFileName) { int rowNum = tmpDataTable.Rows.Count; int columnNum = tmpDataTable.Columns.Count; int rowIndex = 1; int columnIndex = 0; Excel.Application xlApp = new Excel.ApplicationClass(); xlApp.DefaultFilePath =""; xlApp.DisplayAlerts = true; xlApp.SheetsInNewWorkbook = 1; Excel.Workbook xlBook = xlApp.Workbooks.Add(true); //fieldname を书きます foreach(DataColumn dc in tmpDataTable.Columns) { columnIndex ++; xlApp.Cells[rowIndex,columnIndex] = dc.ColumnName; } //データを导出します for(int i = 0;i<rowNum; i++) { rowIndex ++; columnIndex = 0; for (int j = 0;j<columnNum; j++) { columnIndex ++; xlApp.Cells[rowIndex,columnIndex] = tmpDataTable.Rows[i][j].ToString(); } } xlBook.SaveAs((object)strFileName,objt,objt,objt,objt,objt,Excel.XlSaveAsAccessMode.xlNoChange,objt,objt,objt,objt,objt); MessageBox.Show ("EXCELL表を作って终わりました!"); xlApp.Quit(); }
『玖』 C#.net 我想从外部导入相应的excel进C/S的datagriview里显示出来,如何做到
项目一部分,要的话可以到下面地址看看代码,也可以直接邮件给我要
『拾』 C#.NET Excel文件数据导入SQL Server数据库完整代码
Excel.Application app = new Excel.Application(); app.Visible = true; try { object obj = System.Reflection.Missing.Value; Excel.Workbooks wb = app.Workbooks; Excel._Workbook iwk = wb.Add(obj); Excel._Worksheet sheet = (Excel._Worksheet)(iwk.ActiveSheet); app.Caption = "Excle的标题"; //添加列 for (int i = 0; i < this.dataGridView的控件名.Columns.Count; i++) { sheet.Cells[1, i + 1] = this.dataGridView的控件名.Columns[i].HeaderText; } //添加行 for (int i = 0; i < this.dataGridView的控件名.Rows.Count; i++) { for (int j = 0; j < dataGridView的控件名.Columns.Count; j++) { sheet.Cells[i + 2, j + 1] = this.dataGridView的控件名.Rows[i].Cells[j].Value.ToString(); } } } catch (Exception ex) { throw ex; } }用法:先把Excle.dll 复制在你的项目的bin\Debug文件下:在右击工具箱->选择项(I)… -> 显示"选择工具箱项" -> COM组件 -> 选择Excle就可以了
未经允许不得转载:山九号 » excel导入net文件|C#NET Excel文件数据导入SQL Server数据库完整代码