• 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 = "文件为空" });
    }



  • 相关阅读:
    SequenceInputStream
    BufferedReader
    FileWriter
    FileReader
    BufferedOutputStream
    javascript/html 禁止图片缓存
    localStorage util
    FormData上传文件 带进度条
    javascript 一些函数的实现 Function.prototype.bind, Array.prototype.map
    替代jquery中的几个函数
  • 原文地址:https://www.cnblogs.com/yyjspace/p/11599116.html
Copyright © 2020-2023  润新知