示例#1
0
 public ReportRunner()
 {
     excelHelper    = new ClientExcel();
     mgrExcelHelper = new ManagerExcel();
     paras          = new RunnerParas();
     fileMgr        = new FileMgr();
     clients        = new List <Client>();
 }
        public async Task <ResultJSON <string> > ExportExcel(DateTime start, DateTime end)
        {
            try
            {
                List <Client> list = r.GetClientsForExportExcel(start, end);
                if (list == null || list.Count == 0)
                {
                    return new ResultJSON <string> {
                               Code = 503, Msg = "没有相关数据"
                    }
                }
                ;

                var         excellist = new List <ClientExcel>();
                ClientExcel ce;
                foreach (var item in list)
                {
                    ce = new ClientExcel
                    {
                        个人或公司  = item.Name,
                        船号或车号  = item.CarNo,
                        跟进销售   = item.FollowSalesman,
                        联系人    = item.Contact,
                        电话     = item.Mobile,
                        个人账户余额 = item.Balances,
                        所属公司   = item.Company == null ? "" : item.Company.Name,
                        陆上或水上  = item.PlaceType == PlaceType.水上 ? "水上" : "陆上",
                        创建时间   = item.CreatedAt.ToString("yyyy-MM-dd hh:mm"),
                        备注     = item.Remark
                    };

                    excellist.Add(ce);
                }

                string filePath = Path.Combine(_hostingEnvironment.WebRootPath, @"excel\");
                string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "_客户.xlsx";
                Helper.FileHelper.ExportExcelByEPPlus(excellist, filePath + fileName);
                string filePathURL = string.Format("{0}://{1}/{2}", Request.Scheme, Request.Host, @"excel/" + fileName);

                //推送到“导出数据”
                this.option.导出数据AccessToken = AccessTokenContainer.TryGetToken(this.option.CorpId, this.option.导出数据Secret);
                await MassApi.SendTextCardAsync(option.导出数据AccessToken, option.导出数据AgentId, $"{UserName}导出客户数据到Excel"
                                                , $"<div class=\"gray\">操作时间:{DateTime.Now.ToString()}</div>"
                                                + $"<div class=\"gray\">导出时间段:{start.ToString()} - {end.ToString()}</div>"
                                                , filePathURL, toUser : "******");

                return(new ResultJSON <string> {
                    Code = 0, Data = filePathURL
                });
            }
            catch (Exception e)
            {
                return(new ResultJSON <string> {
                    Code = 503, Msg = e.Message
                });
            }
        }