asp.net如何实现客户端excel导入sql数据库

asp.net如何实现客户端excel导入sql数据库,第1张

我是这样做的:

先将excel中的数据导入到gridview中,再从gridview中读取数据存入数据库。

下面的代码是将excel导入到gridview中,excel版本为97-2003

前台有一个控件fileupload,我把名字改成了file1

另外还要拖一个gridview控件和button控件,在button的单击事件中调用以下函数。

希望对你有帮助。

protected void databind()

{

string strPath = "e:\\yanzheng\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls"

File1.PostedFile.SaveAs(strPath)

/*string strPath = File1.PostedFile.FileName*/

string mystring = "Provider = Microsoft.Jet.OLEDB.4.0 Data Source = '" + strPath + "'Extended Properties='Excel 8.0IMEX=1'"

OleDbConnection cnnxls = new OleDbConnection(mystring)

cnnxls.Open()

DataTable table = cnnxls.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null)

string tableName = table.Rows[0][2].ToString().Trim()

OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [" + tableName + "]", cnnxls)

myDa.Fill(myDs)

GridView1.DataSource = myDs.Tables[0]

GridView1.DataBind()

cnnxls.Close()

}

#region 读取Excel

try

{

DataSet dsExcel1 = new DataSet()

HttpPostedFile PostFile = this.FileUpload1.PostedFile

string FileName = DateTime.Now.ToShortDateString() + " " + Path.GetFileName(PostFile.FileName)

string FilePath = ConfigurationSettings.AppSettings["ExcelPath"].ToString()

string Path1 = FilePath + FileName

PostFile.SaveAs(Path1)

PostFile = null

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" + Path1 + "Extended Properties=\"Excel 8.0HDR=YesIMEX=1\""

OleDbConnection SQLCon = new OleDbConnection(strConn)

SQLCon.Open()

DataTable dt = SQLCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null)

string str = dt.Rows[0][2].ToString()

string strSQl = "select * from [" + str + "]"

OleDbDataAdapter Adapter = new OleDbDataAdapter(strSQl, SQLCon)

Adapter.Fill(dsExcel1)

SQLCon.Close()

File.Delete(Path1)

#region LSTBand

List<string>LSTBand = new List<string>()

LSTBand.Add("序号")

LSTBand.Add("档案号")

LSTBand.Add("支部")

LSTBand.Add("姓名")

LSTBand.Add("身份z")

LSTBand.Add("性别")

LSTBand.Add("民族")

LSTBand.Add("籍贯")

LSTBand.Add("出生年月")

LSTBand.Add("入盟时间")

LSTBand.Add("参加工作时间")

LSTBand.Add("学历")

LSTBand.Add("单位(部门)及职务")

LSTBand.Add("职务")

LSTBand.Add("职称")

LSTBand.Add("社会职务")

LSTBand.Add("盟内职务")

LSTBand.Add("曾担任职务")

LSTBand.Add("家庭地址")

LSTBand.Add("单位电话")

LSTBand.Add("家庭电话")

LSTBand.Add("手机(小灵通)")

LSTBand.Add("电子信箱")

LSTBand.Add("退休情况")

LSTBand.Add("参加其他党派")

LSTBand.Add("毕业学校")

LSTBand.Add("学位")

LSTBand.Add("个人简历")

LSTBand.Add("工作业绩")

LSTBand.Add("奖励情况")

LSTBand.Add("个人爱好及特长")

LSTBand.Add("推荐人姓名")

LSTBand.Add("评定时间")

LSTBand.Add("人员性质")

LSTBand.Add("懂何种外语(级别)")

//LSTBand.Add("单位职务(包括曾任)")

LSTBand.Add("家庭成员")

LSTBand.Add("社会关系")

LSTBand.Add("发表学术论文情况")

LSTBand.Add("业务获奖情况")

LSTBand.Add("获荣誉奖情况")

LSTBand.Add("对中国民主同盟组织的认识")

LSTBand.Add("主要成就和社会影响")

//LSTBand.Add("家庭主要成员和社会影响")

LSTBand.Add("家庭主要成员及国内外亲属中知名人士")

LSTBand.Add("党派组织审核意见")

LSTBand.Add("备注")

#endregion

#region 获取Excel表内容到Dataset

for (int i = 0i <dsExcel1.Tables[0].Columns.Counti++)

{

string Excelcolumnname = dsExcel1.Tables[0].Rows[0][dsExcel1.Tables[0].Columns[i].ColumnName].ToString()

if (Excelcolumnname != "")

{

dtExcel.Columns.Add(Excelcolumnname)

}

}

for (int ii = 1ii <dsExcel1.Tables[0].Rows.Countii++)

{

DataRow drExcel = dtExcel.NewRow()

for (int i = 0i <dsExcel1.Tables[0].Columns.Counti++)

{

if (dsExcel1.Tables[0].Rows[0][dsExcel1.Tables[0].Columns[i].ColumnName].ToString() != "")

{

drExcel[dsExcel1.Tables[0].Rows[0][dsExcel1.Tables[0].Columns[i].ColumnName].ToString()] = dsExcel1.Tables[0].Rows[ii][dsExcel1.Tables[0].Columns[i].ColumnName]

}

}

dtExcel.Rows.Add(drExcel)

}

for (int i = 0i <dtExcel.Columns.Counti++)

{

//Response.Write("<script>alert('" + dsExcel.Tables[0].Columns[i].ColumnName + "')</script>")

lstcols.Add(dtExcel.Columns[i].ColumnName)

}

bool ExcelFormat = IsExcel(LSTBand, lstcols)

#endregion

if (ExcelFormat)

{

dsExcel.Tables.Add(dtExcel)

}

else

{

dsExcel = null

Literal1.Text = "<script>alert('Excel表格式错误')</script>"

return

}

}

catch (Exception e1)

{

Literal1.Text = "<script>alert('读取Excel表错误,或者" + e1.Message.ToString() + "')</script>"

return

}

#endregion


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9687460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存