Excel导入sqlserver

  

///


/// 上传Excel
///

///
public ActionResult Excel()
{
ViewData["name"] = "你还没选择文件呢!";
return View();
}

[HttpPost]
public ActionResult Excel(FormCollection collection)
{
// var a = collection["val"];
var file = Request.Files[0];
var b = file.FileName;
Stream ss = file.InputStream;
try
{
if (b != "")
{
//根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档
HSSFWorkbook workbook = new HSSFWorkbook(ss);

//获取excel的第一个sheet
HSSFSheet sheet = (HSSFSheet) workbook.GetSheetAt(1);

DataTable table = new DataTable();
//获取sheet的首行
HSSFRow headerRow = (HSSFRow) sheet.GetRow(0);

//一行最后一个方格的编号 即总的列数
int cellCount = headerRow.LastCellNum;

for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column);
}
//最后一列的标号 即总的行数
int rowCount = sheet.LastRowNum;

SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["connstring"].ConnectionString);//连接数据库
//判断数据库里面是否有数据
SqlCommand sqlComm1 = new SqlCommand();
HSSFRow row1 = (HSSFRow) sheet.GetRow(1);
sqlComm1.CommandText = "select * from t_leavenotes where ldate='" + row1.Cells[2] + "'";
sqlComm1.Connection = sqlConn;
sqlConn.Open();
object count = sqlComm1.ExecuteScalar();
sqlConn.Close();
if (count == null)//如果每次才执行下面的操作
{
SqlCommand sqlComm = new SqlCommand();
sqlComm.CommandText =
string.Format(
"insert into t_leavenotes(Lname,Ldate,Partdate,Workdate,Nextdate,startdate,enddate,Become,Rcome,Latedate," +
"befordate,iscome,overtime,worktime,other,logetype,logeto,Department,Usuallydate,weekenddate,holiday,starttime,usuallywork,weekendwork,holidaywork)" +
"values(@Lname,@Ldate,@Partdate,@Workdate,@Nextdate,@startdate,@enddate,@Become,@Rcome,@Latedate," +
"@befordate,@iscome,@overtime,@worktime,@other,@logetype,@logeto,@Department,@Usuallydate,@weekenddate,@holiday,@starttime,@usuallywork,@weekendwork,@holidaywork)");
//参数化SQL
sqlConn.Open();


for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
{
HSSFRow row = (HSSFRow) sheet.GetRow(i);
// DataRow dataRow = table.NewRow();
//dataRow[j] = row.GetCell(j).ToString();
sqlComm.Parameters.AddWithValue("@Lname", row.Cells[1].StringCellValue);

sqlComm.Parameters.AddWithValue("@Ldate", row.Cells[2].StringCellValue);
sqlComm.Parameters.AddWithValue("@Partdate", row.Cells[3].StringCellValue);
sqlComm.Parameters.AddWithValue("@Workdate", row.Cells[4].StringCellValue);
sqlComm.Parameters.AddWithValue("@Nextdate", row.Cells[5].StringCellValue);
sqlComm.Parameters.AddWithValue("@startdate", row.Cells[6].StringCellValue);
sqlComm.Parameters.AddWithValue("@enddate", row.Cells[7].StringCellValue);
sqlComm.Parameters.AddWithValue("@Become", row.Cells[8].StringCellValue);
sqlComm.Parameters.AddWithValue("@Rcome", row.Cells[9].StringCellValue);
sqlComm.Parameters.AddWithValue("@Latedate", row.Cells[10].StringCellValue);
sqlComm.Parameters.AddWithValue("@befordate", row.Cells[11].StringCellValue);
sqlComm.Parameters.AddWithValue("@iscome", row.Cells[12].ToString());
sqlComm.Parameters.AddWithValue("@overtime", row.Cells[13].StringCellValue);
sqlComm.Parameters.AddWithValue("@worktime", row.Cells[14].StringCellValue);
sqlComm.Parameters.AddWithValue("@other", row.Cells[15].StringCellValue);
sqlComm.Parameters.AddWithValue("@logetype", row.Cells[16].StringCellValue);
sqlComm.Parameters.AddWithValue("@logeto", row.Cells[17].StringCellValue);
sqlComm.Parameters.AddWithValue("@Department", row.Cells[18].StringCellValue);
sqlComm.Parameters.AddWithValue("@Usuallydate", row.Cells[19].StringCellValue);
sqlComm.Parameters.AddWithValue("@weekenddate", row.Cells[20].StringCellValue);
sqlComm.Parameters.AddWithValue("@holiday", row.Cells[21].StringCellValue);
sqlComm.Parameters.AddWithValue("@starttime", row.Cells[22].StringCellValue);
sqlComm.Parameters.AddWithValue("@usuallywork", row.Cells[23].StringCellValue);
sqlComm.Parameters.AddWithValue("@weekendwork", row.Cells[24].StringCellValue);
sqlComm.Parameters.AddWithValue("@holidaywork", row.Cells[25].StringCellValue);

sqlComm.CommandType = CommandType.Text;
sqlComm.Connection = sqlConn;

sqlComm.ExecuteNonQuery();
sqlComm.Parameters.Clear();
}
sqlConn.Close();
ViewData["name"] = "添加成功!";

}
}
else
{
ViewData["name"] = "请先选择文件再确定!";
}
}
catch (Exception ex)
{
ViewData["name"] = "你选择的文件有误!";
}

return View();
}

转载于:https://www.cnblogs.com/monkey-long/p/3431360.html

你可能感兴趣的:(数据库)