鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > .net技术 > asp.net编程 > >

ASP.NET下将不规则的Excel导入数据库

来源:互联网 作者:佚名 时间:2013-01-25 10:29
ASP.NET下将不规则的Excel导入数据库 上一篇写了将规则的Excel导入到数据库中,这篇写一下将不规则的Excel导入到数据库中。 首先看一下Excel的结构: 这个Excel的结构明显要复杂的多。读取复杂的Excel结构,往往还要考虑在数据库中的存储结构,接下来从设计

ASP.NET下将不规则的Excel导入数据库

上一篇写了将规则的Excel导入到数据库中,这篇写一下将不规则的Excel导入到数据库中。

首先看一下Excel的结构:

这个Excel的结构明显要复杂的多。读取复杂的Excel结构,往往还要考虑在数据库中的存储结构,接下来从设计对应Excel结构的数据库开始。

复杂结构的Excel就是存在的一对多的现象,美国服务器,类似于树状图,上图就可以抽象成树状图:

有了抽象成的树状图就可以对应设计数据库存储,以方便日后根据数据库的数据生成相同结构的Excel表格。

数据库中的树状关系是通过主外键连接来实现的,根据这个结构,香港服务器租用,我们需要创建四个表,虚拟主机,分别存储parent,child,definite和click的数据,并建立主外键连接。

数据库表之间的关系如下图:(关系并不是严格按照树状图建立的,而是以树状图为基础,方便功能实现和日后数据查找建立的)

有了数据库表,和表关系,现在让我们来读数据和插数据吧!在有规则Excel的基础上读取不规则的Excel模板,读数据都是一样的,只是添加一些逻辑判断,判断将数据插到哪?

View Code

Button1_Click(object sender, EventArgs e) 2 { { ); } (IsXls != ) 10 { ) 12 { ); } 16 } savePath = Server.MapPath(() + filename);FileUpload1.SaveAs(savePath); DataSet ds = ExcelSqlConnection(savePath, filename,IsXls); DataRow[] dr = ds.Tables[rowsnum = ds.Tables[0].Rows.Count; 23 if (rowsnum == 0) 24 { ); } { { ].ToString(); ( { ].ToString(); S = dr[j][].ToString(); ].ToString(); ].ToString(); 41 cD.AddclicktimesDate(j + 1, S, M, L); { 44 string DocumentDefiniteClassified = dr[j][k].ToString(); 45 if (DocumentDefiniteClassified == "") 46 { ; 48 } 49 int state = 1; 50 int num = j*3 + k; } 53 } 54 } ); 56 } 57 } 连接Excel 读取Excel数据 并返回DataSet数据集合 连接Excel 读取Excel数据 并返回DataSet数据集合 System.Data.DataSet ExcelSqlConnection(string filepath, string tableName,string isxls) 67 { 68 string strCon = ""; ) 70 { + filepath + ; 72 } { + filepath + ; 76 } 77 OleDbConnection ExcelConn = new OleDbConnection(strCon); { ); 81 ExcelConn.Open(); 82 OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, ExcelConn); 83 DataSet ds = new DataSet(); + tableName + ); 85 ExcelConn.Close(); 86 return ds; 87 } { 90 ExcelConn.Close(); ; 92 } 93 } 94 #endregion

本人是菜鸟,代码写的很烂,在实现过程中也遇到了各种问题,大体的思路是这样的,希望对您有所帮助。欢迎大家批评、指点、交流,QQ343548233

posted on

网友评论
<