Пример #1
0
        private void ExportToTag(string filePath, MSDS_Specification model)
        {
            Tag_ExportModel tag = new Tag_ExportModel();

            tag.SheetName_Big    = "大标签";
            tag.SheetName_Small  = "小标签";
            tag.templateFilePath = filePath;
            tag.ProductName      = model.CN_Name ?? model.Product_Name;

            #region 危险组分
            tag.HS = "组分:";
            if (model.HazardousSubstance != null && model.HazardousSubstance.Count > 0)
            {
                int i = 1;
                foreach (MSDS_HazardousSubstances hs in model.HazardousSubstance)
                {
                    if (i > 1)
                    {
                        tag.HS += "/n";
                    }
                    tag.HS += hs.HS_Name + hs.HS_MinPercent + "-" + hs.HS_MaxPercent + "%";
                    i++;
                }
            }
            else
            {
                tag.HS = "";
            }
            #endregion

            #region 危险图标
            List <string> imgPathList = new List <string>();
            string        strRootPath = Server.MapPath("~/Content/Images/");
            if (model.IsExplosive)
            {
                imgPathList.Add(strRootPath + "Explosive.png");
            }
            if (model.IsFlammable)
            {
                imgPathList.Add(strRootPath + "Flammable.png");
            }
            if (model.IsCorrosive)
            {
                imgPathList.Add(strRootPath + "Corrosive.png");
            }
            if (model.IsHealthHazard)
            {
                imgPathList.Add(strRootPath + "HealthHazard.png");
            }
            if (model.IsToxic)
            {
                imgPathList.Add(strRootPath + "Toxic.png");
            }
            if (model.IsOxidizing)
            {
                imgPathList.Add(strRootPath + "Oxidizing.png");
            }
            if (model.IsGasUnderPressure)
            {
                imgPathList.Add(strRootPath + "GasUnderPressure.png");
            }
            if (model.IsIrritant)
            {
                imgPathList.Add(strRootPath + "Irritant.png");
            }
            if (model.IsDangerousToEnvironment)
            {
                imgPathList.Add(strRootPath + "DangerousToEnvironment.png");
            }
            tag.WarningPicPaths = imgPathList;
            tag.BlankPicPath    = strRootPath + "blank.png";
            #endregion

            #region 危害警示
            tag.WarningContent = model.GHS_Warning;
            #endregion

            char[] sp = new char[1] {
                ','
            };
            #region 危害简述
            tag.HazardousDescription = "";
            if (!string.IsNullOrEmpty(model.GHS_HazardouDes_Values))
            {
                string[] names = model.GHS_HazardouDes_Values.Split(sp, StringSplitOptions.RemoveEmptyEntries);
                IList <MSDS_H_Statement> h_statments = _h_StatementService.GetListByNames(names);
                foreach (MSDS_H_Statement item in h_statments)
                {
                    tag.HazardousDescription += "" + item.Description + ",";
                }
                tag.HazardousDescription = tag.HazardousDescription.Substring(0, tag.HazardousDescription.Length - 1);
            }
            else
            {
                tag.HazardousDescription = model.GHS_HazardouDes_Append;
            }
            #endregion

            #region 预防措施
            tag.DefenceDes = "";
            if (!string.IsNullOrEmpty(model.GHS_DefenceDes_Values))
            {
                string[] names = model.GHS_DefenceDes_Values.Split(sp, StringSplitOptions.RemoveEmptyEntries);
                IList <MSDS_P_Statement> statements = _p_StatementService.GetListByNames(names);
                int i = 1;
                foreach (MSDS_P_Statement item in statements)
                {
                    tag.DefenceDes += "● " + item.Description + "\r\n";
                    i++;
                    if (i > 3)
                    {
                        break;
                    }
                }
            }
            else
            {
                tag.DefenceDes = model.GHS_DefenceDes_Append;
            }
            #endregion

            #region 事故响应
            tag.DealDES = "";
            if (!string.IsNullOrEmpty(model.GHS_DealDES_Values))
            {
                string[] names = model.GHS_DealDES_Values.Split(sp, StringSplitOptions.RemoveEmptyEntries);
                IList <MSDS_P_Statement> statements = _p_StatementService.GetListByNames(names);
                int i = 1;
                foreach (MSDS_P_Statement item in statements)
                {
                    tag.DealDES += "● " + item.Description + "\r\n";
                    i++;
                    if (i > 7)
                    {
                        break;
                    }
                }
            }
            else
            {
                tag.DealDES = model.GHS_DealDES_Append;
            }
            #endregion

            #region 安全储存
            //tag.StoreDes = "";
            //if (!string.IsNullOrEmpty(model.GHS_StoreDes_Values))
            //{
            //    string[] names = model.GHS_StoreDes_Values.Split(sp, StringSplitOptions.RemoveEmptyEntries);
            //    IList<MSDS_P_Statement> statements = _p_StatementService.GetListByNames(names);
            //    int i = 1;
            //    foreach (MSDS_P_Statement item in statements)
            //    {
            //        tag.StoreDes += item.Description + ";";
            //        i++;
            //        if (i > 3) break;
            //    }
            //}
            //else
            //{
            //    tag.StoreDes = model.GHS_StoreDes_Append;
            //}

            //if (tag.StoreDes?.Length > 34)
            //{
            //    tag.StoreDes = tag.StoreDes.Substring(0, 34);
            //}
            tag.StoreDes = "存储化学品必须遵照国家法律、法规和其他有关的规定,化学品应有明显的标志。一般情况下,应避免阳光直射,保持通风良好,储存区域内严禁吸烟和使用明火。";
            #endregion

            #region 废弃处置
            //if (model.Product_WasteHanding?.Length > 95)
            //{
            //    tag.WasteHanding = model.Product_WasteHanding.Substring(0,95);
            //}
            //else
            //{
            //    tag.WasteHanding = model.Product_WasteHanding;
            //}
            tag.WasteHanding = "请遵从当地环保法规要求";
            #endregion

            #region 供应商信息
            tag.Supplier_Big = string.Format(@"供应商:{0}
地址:{1}
电话:{2}
                                 应急电话:{3}",
                                             model.Supplier_Name,
                                             model.Supplier_Address,
                                             model.Supplier_Phone,
                                             model.Supplier_UrgencyCall);

            tag.Supplier_Small = string.Format(@"供应商:{0}
地址:{1}
电话:{2}",
                                               model.Supplier_Name,
                                               model.Supplier_Address,
                                               model.Supplier_Phone);
            #endregion

            _importExportService.ExportTagWithTemplate(tag);
        }
Пример #2
0
        public void ExportTagWithTemplate(Tag_ExportModel model)
        {
            FileInfo fileInfo = new FileInfo(model.templateFilePath);

            if (!fileInfo.Exists)
            {
                throw new Exception("未找到名为 " + model.templateFilePath + " 的模板");
            }
            using (var xlPackage = new ExcelPackage(fileInfo))
            {
                var worksheet = xlPackage.Workbook.Worksheets[model.SheetName_Big];
                if (worksheet == null)
                {
                    throw new Exception("模板中未包含名为 " + model.SheetName_Big + " 的Sheet");
                }

                #region 大标签
                var listTitle = worksheet.Drawings.Where(o => o.Name == "Title").ToList();
                foreach (var item in listTitle)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.ProductName;
                }

                var listHS = worksheet.Drawings.Where(o => o.Name == "HS").ToList();
                foreach (var item in listHS)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.HS;
                }

                var listWarning = worksheet.Drawings.Where(o => o.Name == "txtWarning").ToList();
                foreach (var item in listWarning)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.WarningContent;
                }

                var listHazardouDes = worksheet.Drawings.Where(o => o.Name == "HazardouDes").ToList();
                foreach (var item in listHazardouDes)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.HazardousDescription;
                }

                var listDefenceDes = worksheet.Drawings.Where(o => o.Name == "DefenceDes").ToList();
                foreach (var item in listDefenceDes)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.DefenceDes;
                }

                var listDealDES = worksheet.Drawings.Where(o => o.Name == "DealDES").ToList();
                foreach (var item in listDealDES)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.DealDES;
                }

                var listStoreDes = worksheet.Drawings.Where(o => o.Name == "StoreDes").ToList();
                foreach (var item in listStoreDes)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.StoreDes;
                }

                var listWasteHanding = worksheet.Drawings.Where(o => o.Name == "WasteHanding").ToList();
                foreach (var item in listWasteHanding)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.WasteHanding;
                }

                var listSupplierBig = worksheet.Drawings.Where(o => o.Name == "Supplier").ToList();
                foreach (var item in listSupplierBig)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.Supplier_Big;
                }


                #endregion

                var worksheet_small = xlPackage.Workbook.Worksheets[model.SheetName_Small];
                if (worksheet_small == null)
                {
                    throw new Exception("模板中未包含名为 " + model.SheetName_Small + " 的Sheet");
                }

                #region 小标签
                var listTitleSmall = worksheet_small.Drawings.Where(o => o.Name == "Title").ToList();
                foreach (var item in listTitleSmall)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.ProductName;
                }

                var listHSSmall = worksheet_small.Drawings.Where(o => o.Name == "HS").ToList();
                foreach (var item in listHSSmall)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.HS;
                }

                var listHazardouDesSmall = worksheet_small.Drawings.Where(o => o.Name == "HazardouDes").ToList();
                foreach (var item in listHazardouDesSmall)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.HazardousDescription;
                }

                var listSupplierSmall = worksheet_small.Drawings.Where(o => o.Name == "Supplier").ToList();
                foreach (var item in listSupplierSmall)
                {
                    ExcelShape shape = item as ExcelShape;
                    shape.RichText.Text = model.Supplier_Small;
                }
                #endregion

                #region 替换警示标识
                int cellCount = model.WarningPicPaths.Count;

                if (cellCount == 1)
                {
                    #region

                    string pName = "Picture3";
                    var    listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                    foreach (var item in listA)
                    {
                        var img = item as ExcelPicture;
                        img.Image = Image.FromFile(model.WarningPicPaths[0]);
                    }

                    var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                    foreach (var item in listB)
                    {
                        var img = item as ExcelPicture;
                        img.Image = Image.FromFile(model.WarningPicPaths[0]);
                    }

                    for (int i = 1; i < 6; i++)
                    {
                        if (i == 3)
                        {
                            continue;
                        }
                        string _pName = "Picture" + i;
                        var    _listA = worksheet.Drawings.Where(o => o.Name == _pName).ToList();
                        foreach (var item in _listA)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.BlankPicPath);
                        }

                        var _listB = worksheet_small.Drawings.Where(o => o.Name == _pName).ToList();
                        foreach (var item in _listB)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.BlankPicPath);
                        }
                    }
                    #endregion
                }
                else if (cellCount == 2)
                {
                    string pName = "";
                    #region
                    for (int i = 0; i < cellCount; i++)
                    {
                        if (i == 0)
                        {
                            pName = "Picture4";
                        }
                        else
                        {
                            pName = "Picture2";
                        }
                        var listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listA)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.WarningPicPaths[i]);
                        }

                        var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listB)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.WarningPicPaths[i]);
                        }
                    }
                    for (int i = 1; i < 6; i++)
                    {
                        if (i == 2 || i == 4)
                        {
                            continue;
                        }
                        pName = "Picture" + i;
                        var listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listA)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.BlankPicPath);
                        }

                        var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listB)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.BlankPicPath);
                        }
                    }
                    #endregion
                }
                else if (cellCount == 3)
                {
                    #region
                    string pName = "";

                    for (int i = 0; i < cellCount; i++)
                    {
                        if (i == 0)
                        {
                            pName = "Picture4";
                        }
                        else if (i == 1)
                        {
                            pName = "Picture3";
                        }
                        else
                        {
                            pName = "Picture2";
                        }
                        var listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listA)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.WarningPicPaths[i]);
                        }

                        var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listB)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.WarningPicPaths[i]);
                        }
                    }
                    for (int i = 1; i < 6; i++)
                    {
                        if (i == 2 || i == 4 || i == 3)
                        {
                            continue;
                        }
                        pName = "Picture" + i;
                        var listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listA)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.BlankPicPath);
                        }

                        var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listB)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.BlankPicPath);
                        }
                    }
                    #endregion
                }
                else if (cellCount == 4)
                {
                    #region
                    string pName = "";

                    for (int i = 0; i < cellCount; i++)
                    {
                        if (i == 0)
                        {
                            pName = "Picture5";
                        }
                        else if (i == 1)
                        {
                            pName = "Picture4";
                        }
                        else if (i == 2)
                        {
                            pName = "Picture3";
                        }
                        else
                        {
                            pName = "Picture2";
                        }
                        var listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listA)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.WarningPicPaths[i]);
                        }

                        var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listB)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.WarningPicPaths[i]);
                        }
                    }
                    for (int i = 1; i < 2; i++)
                    {
                        if (i == 1)
                        {
                            pName = "Picture" + i;
                            var listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                            foreach (var item in listA)
                            {
                                var img = item as ExcelPicture;
                                img.Image = Image.FromFile(model.BlankPicPath);
                            }

                            var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                            foreach (var item in listB)
                            {
                                var img = item as ExcelPicture;
                                img.Image = Image.FromFile(model.BlankPicPath);
                            }
                        }
                    }
                    #endregion
                }
                else if (cellCount == 5)
                {
                    int k = 1;
                    foreach (string picUrl in model.WarningPicPaths)
                    {
                        string pName = "Picture" + k;
                        var    listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listA)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(picUrl);
                        }

                        var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listB)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(picUrl);
                        }
                        k++;
                    }

                    for (int i = k; i < 6; i++)
                    {
                        string pName = "Picture" + i;
                        var    listA = worksheet.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listA)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.BlankPicPath);
                        }

                        var listB = worksheet_small.Drawings.Where(o => o.Name == pName).ToList();
                        foreach (var item in listB)
                        {
                            var img = item as ExcelPicture;
                            img.Image = Image.FromFile(model.BlankPicPath);
                        }
                    }
                }

                #endregion

                xlPackage.Save();
            }
        }