protected void Button1_Click(object sender, EventArgs e)
{
//一、上传文件
string pathstr = "";
string fileName = "";
pathstr = Server.MapPath("/UpLoads/");
//判断文件是否为空
if (!fupExcel.HasFile)
{
labTips.Text = "上传文件不存在,请选择要上传的文件!";
return;
}
//文件格式安全
fileName = fupExcel.FileName;
string LastName = Path.GetExtension(fileName).ToLower();
//判断文件格式
if (LastName != ".xls" & LastName != ".xlsx")
{
labTips.Text = "上传失败,文件类型不正确!";
return;
}
//重命名
fileName = DateTime.Now.Ticks.ToString() + fileName;
pathstr = pathstr + fileName;
//上传
fupExcel.SaveAs(pathstr);
//二、excel处理
OleDbConnection ole = null;
try{
string strConn;
//Excel 2007 以上版本连接字符串
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathstr + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1';"; // Office 07及以上版本 不能出现多余的空格 而且分号注意
//建立连接
ole = new OleDbConnection(strConn);
ole.Open();
//表名
string sql = "select * from [userlist$]";
//建立数据适配器
OleDbDataAdapter oleExcel = new OleDbDataAdapter(sql, ole);
//新建数据集
DataSet dsExcel = new DataSet();
//把数据适配器中的数据读到数据集中的一个表中(表名为sheet1)
oleExcel.Fill(dsExcel, "Sheet1");
DataTable tb= dsExcel.Tables["Sheet1"];
int count = 0;
string userinfo="";
foreach (DataRow row in tb.Rows)
{
//拼接用户信息
if (count==0) {
userinfo += string.Format("('{0}','{1}','{2}','{3}','{4}')", row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString(), row[4].ToString());
}
else{
userinfo += string.Format(",('{0}','{1}','{2}','{3}','{4}')", row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString(), row[4].ToString());
}
count++;
}
//三、数据库处理
//获取数据库连接字符串
string connStr = ConfigurationManager.ConnectionStrings["sqlConnStr"].ConnectionString;
//构建sql语句
string sqlStr = string.Format(@"INSERT INTO UserInfo (UserName, UserPwd, UserSex, Email,Tel) VALUES{0};", userinfo);
int rowInsert = 0;
//连接数据库
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sqlStr,conn))
{
conn.Open();
rowInsert = cmd.ExecuteNonQuery();
}//end using SqlCommand
}//end using SqlConnection
if (rowInsert > 0)
{
labTips.Text = string.Format("上传成功,成功导入{0}条用户记录", rowInsert); ;
}
else {
labTips.Text = "导入失败!";
}
}
catch (Exception ex)
{
labTips.Text="excel文件读取失败,请检查excel表单内容和格式!";
}
finally
{
ole.Close();
}
}
C# 读取excel文件并保存到数据库
最新推荐文章于 2024-06-07 16:19:41 发布