zoukankan      html  css  js  c++  java
  • 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 = "文件为空" });
    }



  • 相关阅读:
    Power BI 根据用户权限动态生成导航跳转目标
    Power BI Tooltips 增强功能
    Power BI refresh error “could not load file or assembly…provided impersonation level is invalid”
    SQL 错误代码 18456
    如何使用SQL Server Integration Services从多个Excel文件读取数据
    通过表格编辑器将现有表引入Power BI数据流
    Power BI 中动态增长的柱状图
    ambari2.7.3离线安装hdp3.1.0时,ambari-hdp-1.repo中baseurl无值
    ambari 安装 cannot download file mysql-connector-java from http://8080/resource/mysql-connector-java.jar
    洛谷P4180 [BJWC2010]严格次小生成树
  • 原文地址:https://www.cnblogs.com/yyjspace/p/11599116.html
Copyright © 2011-2022 走看看