Ejemplo n.º 1
0
        public HandlerResponse upload()
        {
            string url      = Request.Params["filename"].ToLower().Replace("master", "");
            String dirPath  = Path.Combine(Path.Combine(Request.PhysicalApplicationPath, "uplpod"), url);
            bool   isheader = Request.Params["header"] == "1";
            string spilter  = Request.Params["spilter"];

            string[] filearr = Request.Params["filearr"].TrimEnd('|').Split('|');
            if (string.IsNullOrEmpty(dirPath))
            {
                return(CreateHandler(0, "导入错误"));
            }
            else
            {
                if (System.IO.File.Exists(dirPath))
                {
                    var dt = FileUtily.ReadDataTable(dirPath, 0, spilter, isheader);
                    if (dt == null || dt.Rows.Count == 0)
                    {
                        return(CreateHandler(0, "导入错误"));
                    }
                    else
                    {
                        List <SmsBlackphoneInfo> blacks = new List <SmsBlackphoneInfo>();
                        foreach (DataRow dr in dt.Rows)
                        {
                            SmsBlackphoneInfo black = new SmsBlackphoneInfo();
                            black.Phone = dr[int.Parse(filearr[0])].ToString();
                            if (!AppContent.isPhone(black.Phone))
                            {
                                continue;
                            }
                            black.CreateTime   = DateTime.Now;
                            black.EnterpriseID = AppContent.Current.GetCurrentUser().EnterpriseID;
                            blacks.Add(black);
                        }
                        SmsBlackPhoneManage.Instance.ImportList(blacks);
                    }
                }
                return(CreateHandler(1, "导入成功"));
            }
        }
Ejemplo n.º 2
0
        public ResponseMessageModel DownloadStaffExcel()
        {
            try
            {
                string fileconfig = JsonConfig.JsonRead("EnterpriseStaffTemplate", "CGTExcel");
                string filepath   = Path.Combine(Directory.GetCurrentDirectory(), fileconfig);
                string result     = null;
                if (System.IO.File.Exists(filepath))
                {
                    var stream     = FileUtily.FileToStream(filepath);
                    var ExcelBytes = FileUtily.StreamToBytes(stream);
                    result = Convert.ToBase64String(ExcelBytes);

                    return(new ResponseMessageModel
                    {
                        Data = result,
                        Message = "成功",
                        IsSuccess = true
                    });
                }
                else
                {
                    return(new ResponseMessageModel
                    {
                        Data = "文件不存在路径异常",
                        Message = "成功",
                        IsSuccess = true
                    });
                }
            }
            catch (Exception ex)
            {
                return(new ResponseMessageModel
                {
                    Data = null,
                    Message = ex.Message,
                    IsSuccess = false,
                    ErrorCode = "9999"
                });
            }
        }
Ejemplo n.º 3
0
        protected override void ExecuteMethod()
        {
            string guild      = Guid.NewGuid().ToString();
            string ext        = file.FileName.Substring(file.FileName.LastIndexOf("."));
            string fileconfig = JsonConfig.JsonRead("ProtocolHardStatic", "CGTExcel");
            string filepath   = Path.Combine(Directory.GetCurrentDirectory(), fileconfig);
            string StaticFile = filepath + guild + ext;
            var    Current    = DDD.Utils.Http.MyHttpContext.Current;
            string WebFile    = "http://" + Current.Request.Host.Host + ":" + Current.Request.Host.Port + JsonConfig.JsonRead("ExcelProtocol", "CGTExcel") + guild + ext;
            long   filelength = Current.Request.ContentLength != null?Convert.ToInt64(Current.Request.ContentLength) : 0;

            FileUtily.StreamToFile(file.OpenReadStream(), StaticFile, filelength);
            int reuslt = EpRep.SaveEnterpriseProtocol(Parameter.UserId, Parameter.ID, WebFile);

            if (reuslt > 0)
            {
                this.Result.Data = WebFile;
            }
            else
            {
                throw new Exception("文件地址更新失败.SQL异常");
            }
        }
Ejemplo n.º 4
0
        public void SendPool(object sender)
        {
            SendInfo     info      = sender as SendInfo;
            SmsBatchInfo batchInfo = new SmsBatchInfo();

            batchInfo.AccountID    = info.AccountID;
            batchInfo.EnterPriseID = info.EnterpriseID;
            batchInfo.BatchName    = info.BatchName;
            batchInfo.Remark       = info.BatchRemark;
            batchInfo.SmsContent   = info.Content;

            batchInfo.CommitTime = DateTime.Now;
            List <SmsTelesegInfo>          telesegInfos          = SmsTelesegManage.Instance.FindList(0, -1);
            List <SmsBlackphoneInfo>       blackphoneInfos       = SmsBlackPhoneManage.Instance.GetList(0, -1, info.EnterpriseID);
            List <SmsContentfilterkeyInfo> contentfilterkeyInfos = SmsContentfilterkeyManage.Instance.GetList(0, -1,
                                                                                                              info
                                                                                                              .EnterpriseID);

            batchInfo.MsgType      = 1;
            batchInfo.CreateTime   = DateTime.Now.AddSeconds(-5);
            batchInfo.MessageState = 0;
            batchInfo.BatchState   = 1;
            int batchId      = SmsBatchManage.Instance.AddBatch(batchInfo);
            int mtpackLength = 100;
            int readCount    = 0;
            int totalCount   = 0;
            List <SmsBatchWaitInfo> waitInfos = new List <SmsBatchWaitInfo>();

            SmsBatchWaitInfo[] waitinfoarray = new SmsBatchWaitInfo[3];
            waitinfoarray[0] = new SmsBatchWaitInfo();
            waitinfoarray[1] = new SmsBatchWaitInfo();
            waitinfoarray[2] = new SmsBatchWaitInfo();
            List <string> allPhones = new List <string>();

            if (info.IsFileSend)
            {
                DataTable dt = new DataTable();
                /* 文件发送*/
                String dirPath = Path.Combine(Path.Combine(Request.PhysicalApplicationPath, "uplpod"), info.FileName);

                if (File.Exists(dirPath))
                {
                    dt = FileUtily.ReadDataTable(dirPath, 0, info.spilter, info.IsHeader);
                }
                totalCount = dt.Rows.Count;
                bool isGroup = info.Content.IndexOf("@") > -1;

                if (isGroup)
                {
                    SMSGroupInfo[] groupInfo = new SMSGroupInfo[3];
                    groupInfo[0]            = new SMSGroupInfo();
                    groupInfo[0].groupInfos = new List <GroupInfo>();
                    groupInfo[1]            = new SMSGroupInfo();
                    groupInfo[1].groupInfos = new List <GroupInfo>();
                    groupInfo[2]            = new SMSGroupInfo();
                    groupInfo[2].groupInfos = new List <GroupInfo>();

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        if (!AppContent.isPhone(dt.Rows[i][0].ToString()))
                        {
                            continue;
                        }

                        if (info.FBlack && blackphoneInfos.Count > 0)
                        {
                            if (filterBlack(dt.Rows[i][0].ToString(), blackphoneInfos))
                            {
                                continue;
                            }
                        }
                        string content = ComparContent(info.Content, dt.Columns, dt.Rows[i]);
                        if (info.FKeyword && contentfilterkeyInfos.Count > 0)
                        {
                            if (filterContent(content, contentfilterkeyInfos))
                            {
                                continue;
                            }
                        }
                        if (info.FRepeat && allPhones.Contains(dt.Rows[i][0].ToString()))
                        {
                            continue;
                        }
                        allPhones.Add(dt.Rows[i][0].ToString());
                        int phonetel = getPhone(dt.Rows[i][0].ToString(), telesegInfos);
                        groupInfo[phonetel].groupInfos.Add(new GroupInfo()
                        {
                            Content = content,
                            Phone   = dt.Rows[i][0].ToString()
                        });


                        readCount++;
                    }
                    for (int i = 0; i < 3; i++)
                    {
                        if (groupInfo[i].groupInfos.Count > 0)
                        {
                            waitinfoarray[i].AccountID    = info.AccountID;
                            waitinfoarray[i].EnterPriseID = info.EnterpriseID;
                            waitinfoarray[i].CreateTime   = DateTime.Now;
                            waitinfoarray[i].MsgCount     = mtpackLength;
                            waitinfoarray[i].MsgType      = 0;
                            waitinfoarray[i].MsgCarrier   = i;
                            waitinfoarray[i].BatchID      = batchId;
                            waitinfoarray[i].MsgPack      = JsonHelper.SerializeObject(groupInfo[i]);
                            waitInfos.Add(waitinfoarray[i]);
                            groupInfo[i]            = new SMSGroupInfo();
                            groupInfo[i].groupInfos = new List <GroupInfo>();
                            waitinfoarray[i]        = new SmsBatchWaitInfo();
                        }
                    }
                }
                else
                {
                    bool isFContent = false;
                    if (info.FKeyword && contentfilterkeyInfos.Count > 0)
                    {
                        if (filterContent(info.Content, contentfilterkeyInfos))
                        {
                            isFContent = true;
                        }
                    }
                    if (!isFContent)
                    {
                        SMSMassInfo[] massInfo = new SMSMassInfo[3];
                        massInfo[0]         = new SMSMassInfo();
                        massInfo[0].Content = info.Content;
                        massInfo[0].Phones  = new List <string>();
                        massInfo[1]         = new SMSMassInfo();
                        massInfo[1].Content = info.Content;
                        massInfo[1].Phones  = new List <string>();
                        massInfo[2]         = new SMSMassInfo();
                        massInfo[2].Content = info.Content;
                        massInfo[2].Phones  = new List <string>();
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            if (!AppContent.isPhone(dt.Rows[i][0].ToString()))
                            {
                                continue;
                            }
                            if (info.FBlack && blackphoneInfos.Count > 0)
                            {
                                if (filterBlack(dt.Rows[i][0].ToString(), blackphoneInfos))
                                {
                                    continue;
                                }
                            }
                            if (info.FRepeat && allPhones.Contains(dt.Rows[i][0].ToString()))
                            {
                                continue;
                            }
                            allPhones.Add(dt.Rows[i][0].ToString());
                            int phonetel = getPhone(dt.Rows[i][0].ToString(), telesegInfos);
                            massInfo[phonetel].Phones.Add(
                                dt.Rows[i][0].ToString()
                                );

                            readCount++;
                        }
                        for (int i = 0; i < 3; i++)
                        {
                            if (massInfo[i].Phones.Count > 0)
                            {
                                waitinfoarray[i].AccountID    = info.AccountID;
                                waitinfoarray[i].EnterPriseID = info.EnterpriseID;
                                waitinfoarray[i].CreateTime   = DateTime.Now;
                                waitinfoarray[i].MsgCount     = mtpackLength;
                                waitinfoarray[i].MsgType      = 1;
                                waitinfoarray[i].BatchID      = batchId;
                                waitinfoarray[i].MsgCarrier   = i;
                                waitinfoarray[i].MsgPack      = JsonHelper.SerializeObject(massInfo[i]);
                                waitInfos.Add(waitinfoarray[i]);
                                massInfo[i]         = new SMSMassInfo();
                                massInfo[i].Content = info.Content;
                                massInfo[i].Phones  = new List <string>();
                                waitinfoarray[i]    = new SmsBatchWaitInfo();
                            }
                        }
                    }
                }
            }
            else
            {
                List <string>         cids            = new List <string>();
                List <SmsContactInfo> smsContactInfos = new List <SmsContactInfo>();
                /*联系人发送*/
                for (int i = 0; i < info.Mobiles.Length; i++)
                {
                    string mobile    = info.Mobiles[i];
                    string submobile = mobile.Substring(0, 1);
                    switch (submobile)
                    {
                    case "c":
                        /*直接联系人*/
                        string cid = mobile.TrimStart('c').TrimStart('0');
                        cids.Add(cid);
                        break;

                    case "g":
                        string[] contions = mobile.TrimStart('g').Split('|');
                        int      gid      = 0;
                        if (int.TryParse(contions[0], out gid))
                        {
                            smsContactInfos.AddRange(SmsContactManage.Instance.getList(0, -1, int.Parse(contions[0]), contions[1], contions[2], info.EnterpriseID));
                        }
                        break;

                    case "1":
                        if (AppContent.isPhone(mobile))
                        {
                            smsContactInfos.Add(new SmsContactInfo()
                            {
                                Mobile   = mobile,
                                Birthday = DateTime.Parse("1910-1-1")
                            });
                        }
                        break;
                    }
                }
                List <SmsContactInfo> contacts = SmsContactManage.Instance.GetContacts(cids, info.EnterpriseID);
                smsContactInfos.AddRange(contacts);

                bool isGroup = info.Content.IndexOf("@") > -1;
                totalCount = smsContactInfos.Count;
                if (isGroup)
                {
                    SMSGroupInfo[] groupInfo = new SMSGroupInfo[3];
                    groupInfo[0]            = new SMSGroupInfo();
                    groupInfo[0].groupInfos = new List <GroupInfo>();
                    groupInfo[1]            = new SMSGroupInfo();
                    groupInfo[1].groupInfos = new List <GroupInfo>();
                    groupInfo[2]            = new SMSGroupInfo();
                    groupInfo[2].groupInfos = new List <GroupInfo>();
                    for (int i = 0; i < smsContactInfos.Count; i++)
                    {
                        SmsContactInfo contactInfo = smsContactInfos[i];
                        if (!AppContent.isPhone(contactInfo.Mobile))
                        {
                            continue;
                        }

                        if (info.FBlack && blackphoneInfos.Count > 0)
                        {
                            if (filterBlack(contactInfo.Mobile, blackphoneInfos))
                            {
                                continue;
                            }
                        }
                        string content = ComparContent(info.Content, contactInfo);
                        if (info.FKeyword && contentfilterkeyInfos.Count > 0)
                        {
                            if (filterContent(content, contentfilterkeyInfos))
                            {
                                continue;
                            }
                        }
                        if (info.FRepeat && allPhones.Contains(contactInfo.Mobile))
                        {
                            continue;
                        }
                        allPhones.Add(contactInfo.Mobile);
                        int phonetel = getPhone(contactInfo.Mobile, telesegInfos);
                        groupInfo[phonetel].groupInfos.Add(new GroupInfo()
                        {
                            Content = ComparContent(info.Content, contactInfo),
                            Phone   = contactInfo.Mobile
                        });


                        readCount++;
                    }
                    for (int i = 0; i < 3; i++)
                    {
                        if (groupInfo[i].groupInfos.Count > 0)
                        {
                            waitinfoarray[i].AccountID    = info.AccountID;
                            waitinfoarray[i].EnterPriseID = info.EnterpriseID;
                            waitinfoarray[i].CreateTime   = DateTime.Now;
                            waitinfoarray[i].MsgCount     = mtpackLength;
                            waitinfoarray[i].MsgType      = 0;
                            waitinfoarray[i].MsgCarrier   = i;
                            waitinfoarray[i].BatchID      = batchId;
                            waitinfoarray[i].MsgPack      = JsonHelper.SerializeObject(groupInfo[i]);
                            waitInfos.Add(waitinfoarray[i]);
                            groupInfo[i]            = new SMSGroupInfo();
                            groupInfo[i].groupInfos = new List <GroupInfo>();
                            waitinfoarray[i]        = new SmsBatchWaitInfo();
                        }
                    }
                }
                else
                {
                    bool isFContent = false;
                    if (info.FKeyword && contentfilterkeyInfos.Count > 0)
                    {
                        if (filterContent(info.Content, contentfilterkeyInfos))
                        {
                            isFContent = true;
                        }
                    }
                    if (!isFContent)
                    {
                        SMSMassInfo[] massInfo = new SMSMassInfo[3];
                        massInfo[0]         = new SMSMassInfo();
                        massInfo[0].Content = info.Content;
                        massInfo[0].Phones  = new List <string>();
                        massInfo[1]         = new SMSMassInfo();
                        massInfo[1].Content = info.Content;
                        massInfo[1].Phones  = new List <string>();
                        massInfo[2]         = new SMSMassInfo();
                        massInfo[2].Content = info.Content;
                        massInfo[2].Phones  = new List <string>();
                        for (int i = 0; i < smsContactInfos.Count; i++)
                        {
                            SmsContactInfo contactInfo = smsContactInfos[i];
                            if (!AppContent.isPhone(contactInfo.Mobile))
                            {
                                continue;
                            }
                            if (info.FBlack && blackphoneInfos.Count > 0)
                            {
                                if (filterBlack(contactInfo.Mobile, blackphoneInfos))
                                {
                                    continue;
                                }
                            }
                            if (info.FRepeat && allPhones.Contains(contactInfo.Mobile))
                            {
                                continue;
                            }
                            allPhones.Add(contactInfo.Mobile);
                            int phonetel = getPhone(contactInfo.Mobile, telesegInfos);
                            massInfo[phonetel].Phones.Add(
                                contactInfo.Mobile
                                );


                            readCount++;
                        }
                        for (int i = 0; i < 3; i++)
                        {
                            if (massInfo[i].Phones.Count > 0)
                            {
                                waitinfoarray[i].AccountID    = info.AccountID;
                                waitinfoarray[i].EnterPriseID = info.EnterpriseID;
                                waitinfoarray[i].CreateTime   = DateTime.Now;
                                waitinfoarray[i].MsgCount     = mtpackLength;
                                waitinfoarray[i].MsgType      = 1;
                                waitinfoarray[i].BatchID      = batchId;
                                waitinfoarray[i].MsgCarrier   = i;
                                waitinfoarray[i].MsgPack      = JsonHelper.SerializeObject(massInfo[i]);
                                waitInfos.Add(waitinfoarray[i]);
                                massInfo[i]         = new SMSMassInfo();
                                massInfo[i].Content = info.Content;
                                massInfo[i].Phones  = new List <string>();
                                waitinfoarray[i]    = new SmsBatchWaitInfo();
                            }
                        }
                    }
                }
            }
            SmsBatchAmountInfo amountInfo = new SmsBatchAmountInfo();

            amountInfo.BatchID       = batchId;
            amountInfo.SendAmount    = readCount;
            amountInfo.PlanSendCount = totalCount;
            amountInfo.RealAmount    = readCount;
            amountInfo.SuccessAmount = 0;
            amountInfo.CreateTime    = DateTime.Now;
            SmsBatchManage.Instance.AddBatchAmount(amountInfo);
            SmsBatchManage.Instance.AddBatchWait(waitInfos);
            if (readCount > 0)
            {
                SmsBatchManage.Instance.UpdateState(batchId, BatchState.Waiting, waitInfos.Count);
            }
            else
            {
                SmsBatchManage.Instance.UpdateState(batchId, BatchState.Complete, waitInfos.Count);
            }
        }
Ejemplo n.º 5
0
        public HandlerResponse upload()
        {
            string url      = Request.Params["filename"].ToLower().Replace("master", "");
            String dirPath  = Path.Combine(Path.Combine(Request.PhysicalApplicationPath, "uplpod"), url);
            bool   isheader = Request.Params["header"] == "1";
            string spilter  = Request.Params["spilter"];
            int    groupid  = int.Parse(Request.Params["groupid"]);

            string[] filearr = Request.Params["filearr"].TrimEnd('|').Split('|');
            if (string.IsNullOrEmpty(dirPath))
            {
                return(CreateHandler(0, "导入错误"));
            }
            else
            {
                if (System.IO.File.Exists(dirPath))
                {
                    var dt = FileUtily.ReadDataTable(dirPath, 0, spilter);
                    if (dt == null || dt.Rows.Count == 0)
                    {
                        return(CreateHandler(0, "导入错误"));
                    }
                    else
                    {
                        List <SmsContactInfo> contacts = new List <SmsContactInfo>();
                        foreach (DataRow dr in dt.Rows)
                        {
                            SmsContactInfo contact = new SmsContactInfo();
                            contact.Name   = dr[int.Parse(filearr[0])].ToString();
                            contact.Mobile = dr[int.Parse(filearr[1])].ToString();
                            if (!AppContent.isPhone(contact.Mobile))
                            {
                                continue;
                            }
                            int sex = 0;
                            contact.Sex = 0;
                            if (int.TryParse(dr[int.Parse(filearr[2])].ToString(), out sex))
                            {
                                if (sex == 0 || sex == 2 || sex == 1)
                                {
                                    contact.Sex = sex;
                                }
                                else
                                {
                                    contact.Sex = 0;
                                }
                            }
                            string   birthday = dr[int.Parse(filearr[3])].ToString();
                            DateTime bir      = DateTime.Parse("1910-1-1");
                            if (DateTime.TryParse(birthday, out bir))
                            {
                                contact.Birthday = bir;
                            }
                            contact.Comment    = dr[int.Parse(filearr[4])].ToString();
                            contact.CreateTime = DateTime.Now;
                            if (groupid != 0)
                            {
                                contact.GroupID = groupid;
                            }
                            contact.EnterpriseId = AppContent.Current.GetCurrentUser().EnterpriseID;
                            contacts.Add(contact);
                        }
                        SmsContactManage.Instance.ImportList(contacts, groupid);
                    }
                }
                return(CreateHandler(1, "导入成功"));
            }
        }
Ejemplo n.º 6
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            HttpPostedFile qqfile     = context.Request.Files["qqfile"];
            string         path       = context.Request.PhysicalApplicationPath;
            string         uploadPath = "";

            using (var stream = qqfile.InputStream)
            {
                using (var br = new BinaryReader(stream))
                {
                    uploadPath = WriteStream(br, qqfile.FileName, path);
                }
            }
            bool   isheader       = context.Request.Params["header"] == "1";
            string spilter        = context.Request.Params["spilter"];
            string fulluploadPath = Path.Combine(Path.Combine(path, "uplpod"), uploadPath);
            string extension      = Path.GetExtension(qqfile.FileName).ToLower();

            string[] arr = new string[2];
            arr[1] = string.Empty;
            arr[0] = string.Empty;
            switch (extension)
            {
            case ".txt":
            {
                Encoding encoding = FileUtily.DetectEncoding(fulluploadPath);

                StreamReader sr = new StreamReader(fulluploadPath, encoding);
                String       line;
                int          readindex = 0;

                while ((line = sr.ReadLine()) != null)
                {
                    char spter = Convert.ToChar(spilter);
                    //arr[readindex] = line.Trim();
                    string[] array = line.Trim().Split(spter);
                    if (isheader && readindex == 0)
                    {
                        for (int i = 0; i < array.Length; i++)
                        {
                            if (i == 0)
                            {
                                arr[0] = array[i] + "";
                            }
                            else
                            {
                                arr[0] += "," + array[i];
                            }
                        }
                    }
                    else if (isheader && readindex == 1)
                    {
                        for (int i = 0; i < array.Length; i++)
                        {
                            if (i == 0)
                            {
                                arr[1] = array[i] + "";
                            }
                            else
                            {
                                arr[1] += "," + array[i];
                            }
                        }
                    }
                    else if (!isheader)
                    {
                        for (int i = 0; i < array.Length; i++)
                        {
                            if (i == 0)
                            {
                                arr[0] = "column" + i; arr[1] = array[i] + "";
                            }
                            else
                            {
                                arr[1] += "," + array[i];
                                arr[0] += "," + "column" + i;
                            }
                        }
                    }
                    if (readindex == 1)
                    {
                        break;
                    }
                    readindex++;
                }
            }
            break;

            case ".xls":
            {
                DataTable dt = FileUtily.ReadDataTable(fulluploadPath, 0, "");
                if (dt.Rows.Count > 0)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (j == 0)
                        {
                            arr[0] = dt.Columns[j].ColumnName + "";
                        }
                        else
                        {
                            arr[0] += "," + dt.Columns[j].ColumnName;
                        }
                    }
                }
                if (dt.Rows.Count > 1)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (j == 0)
                        {
                            arr[1] = dt.Rows[1][j] + "";
                        }
                        else
                        {
                            arr[1] += "," + dt.Rows[1][j];
                        }
                    }
                }
            }
            break;
            }
            context.Response.Write(JsonHelper.SerializeObject(new { success = true, message = arr, filename = uploadPath }));
        }
Ejemplo n.º 7
0
        public byte[] ExcelExport <T>(List <T> dataList, List <string> TitleList, List <string> KeyList)
        {
            lock (locker) {
                string sWebRootFolder = _hostingEnvironment.WebRootPath + @"\ExcelOutput\";
                if (!Directory.Exists(sWebRootFolder))
                {
                    Directory.CreateDirectory(sWebRootFolder);
                }
                string   sFileName = $"{Guid.NewGuid()}.xlsx";
                FileInfo file      = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
                using (ExcelPackage package = new ExcelPackage(file)) {
                    // 添加worksheet
                    ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("aspnetcore");
                    //添加头
                    worksheet.Name = "workbook";
                    Type                type      = typeof(T);
                    PropertyInfo[]      propertys = type.GetProperties();
                    List <PropertyInfo> propertys_newListorder = new List <PropertyInfo>();
                    foreach (var pi in KeyList)
                    {
                        if (propertys.Where(p => p.Name == pi).Count() == 1)
                        {
                            propertys_newListorder.Add(propertys.Where(p => p.Name == pi).FirstOrDefault());
                        }
                    }
                    int hangshu           = dataList.Count;
                    int lieshu            = propertys_newListorder.Count();
                    var propertys_newarry = propertys_newListorder.ToArray();

                    //填写标题
                    for (int t = 0; t < TitleList.Count; t++)
                    {
                        worksheet.Cells[1, (t + 1)].Value = TitleList[t];
                    }

                    //添加值
                    for (int i = 0; i < hangshu; i++)
                    {
                        for (int j = 0; j < lieshu; j++)
                        {
                            //string值自动格式化 execl单元格
                            if (propertys_newarry[j].PropertyType == typeof(Nullable <Byte>))
                            {
                                worksheet.Cells[(i + 2), (j + 1)].Value = ConvertIsByteNuablle((byte?)propertys_newarry[j].GetValue(dataList[i], null));
                            }
                            else if (propertys_newarry[j].PropertyType == typeof(DateTime))
                            {
                                worksheet.Cells[(i + 2), (j + 1)].Value = propertys_newarry[j].GetValue(dataList[i], null).ToString();
                            }
                            else
                            {
                                worksheet.Cells[(i + 2), (j + 1)].Value = propertys_newarry[j].GetValue(dataList[i], null);
                            }
                        }
                    }
                    //保存文件
                    package.Save();

                    var stream     = FileUtily.FileToStream(Path.Combine(sWebRootFolder, sFileName));
                    var ExcelBytes = FileUtily.StreamToBytes(stream);

                    //删除文件
                    file.Delete();

                    return(ExcelBytes);
                }
            }
        }