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")); }
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 })); } }