Asp.net中把Excel数据存储至SQL Server中的具体实现方法
Asp.net中把Excel数据存储至SQL Server中的具体实现方法
发布时间:2016-12-29 来源:查字典编辑
摘要:ExcelWrapper复制代码代码如下://////查询EXCEL电子表格添加到DATASET//////文件路径///dataset中的...

Asp.net中把Excel数据存储至SQL Server中的具体实现方法1

ExcelWrapper

复制代码 代码如下:

/// <summary>

/// 查询EXCEL电子表格添加到DATASET

/// </summary>

/// <param name="filenameurl">文件路径</param>

/// <param name="table">dataset中的表名(并不是要和数据库中的表一样)</param>

/// <returns></returns>

public static DataSet ExecleDs(string filenameurl, string table)

{

string strConn = "Provider=Microsoft.Jet.OleDb.4.0;"

+ "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";

OleDbConnection conn = new OleDbConnection(strConn);

conn.Open();

DataSet ds = new DataSet();

OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);

odda.Fill(ds, table);

return ds;

}

.cs

复制代码 代码如下:

// 提交按钮

protected void imgbtnSubmit_Click(object sender, ImageClickEventArgs e)

{

try

{

if (!FileUpload1.HasFile)

{

JsHelper.Alert("请您选择Excel文件", this);

return;

}

// 取得文件后缀名

string extension = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();

if (extension != ".xls" && extension != ".xlsx")

{

JsHelper.Alert("只可以选择Excel文件", this);

return;

}

// 构造Exel存在服务器相对路径的文件名,并SaveAs 将上传的文件内容保存在服务器上

string filename = DateTime.Now.ToString("yyyymmddhhMMss") + FileUpload1.FileName;

string savePath = Server.MapPath(("~upfiles") + filename);

FileUpload1.SaveAs(savePath);

DataSet ds = ExcelWrapper.ExecleDs(savePath, filename);

DataRow[] dr = ds.Tables[0].Select();

int rowsnum = ds.Tables[0].Rows.Count;

List<String> lstMsg = new List<string>();

if (rowsnum == 0)

{

JsHelper.Alert("Excel表为空表,无数据", this);

}

else

{

for (int i = 0; i < dr.Length; i++)

{

String error = "";

// excel列名不能变

string num = dr[i]["学号"].ToString();

string name = dr[i]["姓名"].ToString();

string pwd = dr[i]["密码"].ToString();

string collegeNum = dr[i]["学院编号"].ToString();

string birth = dr[i]["生日"].ToString();

if (!BLL.M_CollegeBLL.GetAllCollegeNum().Contains(collegeNum))

{

error += "所属学院不存";

}

if (String.IsNullOrEmpty(collegeNum))

{

error += "请选择该学生所在院系";

}

if (String.IsNullOrEmpty(num))

{

error += "学号不能为空";

}

else if (!Utility.IsLetterThanSomeLength(num, 25))

{

error += "学号的长度过长";

}

if (String.IsNullOrEmpty(name))

{

error += "姓名不能为空";

}

else if (!Utility.IsLetterThanSomeLength(name, 25))

{

error += "姓名的长度过长";

}

if (String.IsNullOrEmpty(birth))

{

error += "出生日期不能为空";

}

else if (!Utility.IsDateTime(birth))

{

error += "出生日期格式不正确";

}

if (String.IsNullOrEmpty(sex))

{

error += "性别不能为空";

}

if (String.IsNullOrEmpty(error))

{

M_Student stu = new M_Student();

stu.Num = num;

stu.Name = name;

stu.Pwd = pwd;

stu.CollegeNum = collegeNum;

stu.Birthday = Convert.ToDateTime(birth);

// 该学号不存在

if (!BLL.M_StudentBLL.GetAllStuNum().Contains(num))

{

BLL.M_StudentBLL.Add(stu);

}

else

{

BLL.M_StudentBLL.Modify(stu);

}

}

else

{

lstMsg.Add("学号为" + num + "未导入成功," + "原因:" + error + "。");

}

}

}

this.lblHint.Text = "导入完成。";

if (null != lstMsg)

{

this.lblHint.Text += "共有" + lstMsg.Count() + "条记录未成功。<br /><br />";

foreach (string s in lstMsg)

{

this.lblHint.Text += s;

}

}

}

catch

{

this.lblHint.Text = "程序出错,请您检查需要导入的表!";

}

}

效果图

Asp.net中把Excel数据存储至SQL Server中的具体实现方法2

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类