Ejemplo n.º 1
0
        public async Task <IActionResult> DownloadVoteLogs(int voteId)
        {
            //string sWebRootFolder = _hostingEnvironment.WebRootPath;
            //string sFileName = $"{Guid.NewGuid()}.xlsx";
            //FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
            var voteLog = await dbContext.VoteLog.Where(x => x.VoteId == voteId).ToListAsync();

            var userInfo = await dbContext.UserInfo.Where(x => voteLog.Select(c => c.UserId).Contains(x.WxOpenId)).ToListAsync();

            var outputStream = new MemoryStream();

            using (ExcelPackage package = new ExcelPackage())
            {
                // 添加worksheet
                ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("vote_game");
                //添加头
                worksheet.Cells[1, 1].Value = "微信名";
                worksheet.Cells[1, 2].Value = "姓名";
                worksheet.Cells[1, 3].Value = "编号";
                worksheet.Cells[1, 4].Value = "投票";
                worksheet.Cells[1, 5].Value = "时间";
                worksheet.Cells[1, 6].Value = "坐标 Latitude";
                worksheet.Cells[1, 7].Value = "坐标 Longtitude";
                worksheet.Cells[1, 8].Value = "OpenId";
                for (int i = 0; i < voteLog.Count; i++)
                {
                    var item = voteLog[i];
                    var user = userInfo.FirstOrDefault(x => x.WxOpenId == item.UserId || x.Password == item.UserKey || x.WxNickName == item.UserKey);
                    //if (user != null)
                    //{
                    JDLYLog jdlyLog       = null;
                    string  ExcelUserName = string.Empty;
                    if (user == null || user.UserName == null || user.Password == null)
                    {
                        jdlyLog = await dbContext.JDLYLog.FirstOrDefaultAsync(x => x.NickName == item.UserKey);

                        if (jdlyLog != null)
                        {
                            ExcelUserName = (await dbContext.ExcelUserInfo.FirstOrDefaultAsync(x => x.Description == jdlyLog.UserCode)).UserName;
                        }
                    }
                    worksheet.Cells[i + 2, 1].Value = user?.WxNickName ?? item.UserKey ?? "";
                    worksheet.Cells[i + 2, 2].Value = user?.UserName ?? ExcelUserName;
                    worksheet.Cells[i + 2, 3].Value = user?.Password ?? jdlyLog?.UserCode;
                    worksheet.Cells[i + 2, 4].Value = item.VoteOption;
                    worksheet.Cells[i + 2, 5].Value = item.CreateTime.ToString("yyyy-MM-dd hh:mm:ss");
                    worksheet.Cells[i + 2, 6].Value = item.Latitude;
                    worksheet.Cells[i + 2, 7].Value = item.Longtitude;
                    worksheet.Cells[i + 2, 8].Value = item.UserId;
                    //}
                }

                package.SaveAs(outputStream);
            }

            //return File(outputStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "投票记录" + DateTime.Now.ToLongDateString() + ".xlsx");            //return File(outputStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "投票记录" + DateTime.Now.ToLongDateString() + ".xlsx");
            outputStream.Position = 0;
            return(File(outputStream, "application/vnd.ms-excel", "投票记录" + ".xlsx"));
        }
Ejemplo n.º 2
0
 public async Task <IActionResult> Post(JDLYLog jdlyLog)
 {
     try
     {
         dbOptMng.InsertOptAutoRun(jdlyLog, async _localModel =>
         {
             await singletonDbContext.AddRangeAsync(_localModel);
             await singletonDbContext.SaveChangesAsync();
         }, 500);
         return(Json(new { success = true, msg = true }));
     }
     catch (Exception exc)
     {
         return(Json(new { success = false, msg = exc.Message }));
     }
 }