aspose导入(webapi)

public IHttpActionResult ImportFood()
{
HttpFileCollection files = HttpContext.Current.Request.Files;
foreach (string key in files.AllKeys)
{
HttpPostedFile file1 = files[key];
bool exportColumnName = true;
Workbook workbook = new Workbook(file1.InputStream);
Worksheet worksheet = workbook.Worksheets[0];
Cells cells = worksheet.Cells;
string titleformat = "食品类别,食品编号,食品名称,规格,计量单位,价格";
string title = "";
for (int j = 0; j < cells.MaxDataColumn + 1; j++)
{
title += cells[0, j].StringValue.Trim() + ',';
}
if (title.Substring(0, title.Length - 1) != titleformat)
{
return Json(new { success = false, message = "文件不符合格式!你可以下载模板重新导入!" });
}
var data = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, exportColumnName);
List<fd_food_library> bacth_foodlibrary = new List<fd_food_library>();
List<string> name = (from d in data.AsEnumerable() select d.Field<string>("食品名称")).ToList();
List<string> price = (from d in data.AsEnumerable() select d.Field<string>("价格")).ToList();
foreach (var item in price)
{
if (!string.IsNullOrEmpty(item))
{
decimal num;
if (decimal.TryParse(item, out num) == false)
{
return Json(new { success = false, message = item + "不是数字,请检查后重试!" });
}
}
}
var foodlibrary = _foodlibraryRepository.GetFoodByName(name);
var pga = new PredicateGroup { Operator = GroupOperator.And, Predicates = new List<IPredicate>() };
pga.Predicates.Add(Predicates.Field<im_item_type>(x => x.state, Operator.Eq, 0));
pga.Predicates.Add(Predicates.Field<im_item_type>(x => x.type, Operator.Eq, "食品"));
var foodtype = _itemtypeRepository.GetList(pga).Where(a => a.name != "食品").ToList();
foreach (DataRow item in data.Rows)
{
if(item["食品名称"].ToString()=="")
{
return Json(new { success = false, message = data.Rows.IndexOf(item)+1+"行食品名称为空,请检查后重试!" });
}
if (name.Where(a => a == item["食品名称"].ToString()).Count() > 1)
{
return Json(new { success = false, message = item["食品名称"].ToString() + "食品名称有重复,请检查后重试!" });
}
var type = foodtype.Where(a => a.name == item["食品类别"].ToString()).FirstOrDefault();
if (type == null)
return Json(new { success = false, message = item["食品类别"].ToString() + "类别不存在,请检查后重试!" });
var food = foodlibrary.Where(a => a.name == item["食品名称"].ToString()).FirstOrDefault();
if (food == null)
{
bacth_foodlibrary.Add(new fd_food_library
{
id = Guid.NewGuid().ToString(),
type_id = type.id,
type_name = type.name,
number = item["食品编号"].ToString(),
name = item["食品名称"].ToString(),
unit = item["计量单位"].ToString(),
month = 0,
warn_quantity = 0,
state = 0,
price = item["价格"].ToString() != "" ? Convert.ToDecimal(item["价格"].ToString()) : 0 ,
specification = item["规格"].ToString(),
});
}
}
_foodlibraryRepository.Insert(bacth_foodlibrary);
return Json(new { success = true });
}
return Json(new { success = false, message = "文件为空" });
}



原文地址:https://www.cnblogs.com/yyjspace/p/11599116.html