Mvc导入

[HttpPost]
public void Import()
{
//获取文件

HttpPostedFileBase fileBase = Request.Files["file"];

if(fileBase==null)
{
  Response.Write("");
}
//转数据流
Stream stream = fileBase.InputStream;
IWorkbook workbook = null;

if (Path.GetExtension(fileBase.FileName).ToLower().Equals(".xls"))
{
  workbook = new HSSFWorkbook(stream);
}
//获取sheet
ISheet sheet = workbook.GetSheetAt(0);
//获取头
IRow row = sheet.GetRow(0);
//定义datatable
DataTable dt = new DataTable();
foreach (ICell item in row.Cells)
{
//循环添加表头
  dt.Columns.Add(item.StringCellValue);
}
for (int i = 0; i <= sheet.LastRowNum; i++)
{
  DataRow dr = dt.NewRow();
  for (int j = 0; j < sheet.GetRow(i).Cells.Count; j++)
{

CellType cellType = sheet.GetRow(i).Cells[j].CellType;
int index = sheet.GetRow(i).Cells[j].ColumnIndex;
switch (cellType)
{
  case CellType.Numeric:dr[index]=sheet.GetRow(i).Cells[j].NumericCellValue;
  break;
  case CellType.String:
  dr[index] = sheet.GetRow(i).Cells[j].StringCellValue;
  break;
  case CellType.Boolean:
  dr[index] = sheet.GetRow(i).Cells[j].BooleanCellValue;
  break;
  }
}
  dt.Rows.Add(dr);
}


//sql拼接
try
{
dt.Columns.RemoveAt(0);
foreach (DataRow item in dt.Rows)
{
  string sql = $"inserrt into mess values(";
  foreach (object it in item.ItemArray)
  {
  sql += $"'{it}',";
  }
  sql = sql.TrimEnd(',');
  sql += ")";
  DB.ExecuteNonQuery(sql);
  }
}
catch (Exception)
{

throw;
}
}

//前台

<form action="/Default/Import" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file">
<input type="submit" name="name" class="btn btn-success btn-sm" value="导入">
</form>

 

 

posted @ 2019-12-03 14:04  与bug相伴  阅读(474)  评论(1编辑  收藏  举报