先将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 读取Exceltry
{
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)