/// <summary> /// Xuất excel. /// </summary> /// <param name="input">Điều kiện xuất excel.</param> /// <returns>File excel.</returns> public async Task <FileDto> ExportToExcel(DemoGetAllInputDto input) { // Lấy danh sách cần xuất excel var list = await this.GetAllAsync(input); using (var package = new ExcelPackage()) { // Add sheet ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Demo"); var namedStyle = package.Workbook.Styles.CreateNamedStyle("HyperLink"); namedStyle.Style.Font.UnderLine = true; namedStyle.Style.Font.Color.SetColor(Color.Blue); // set header worksheet.Cells[1, 1].Value = "Mã"; worksheet.Cells[1, 2].Value = "Tên"; // Bôi đậm header using (ExcelRange r = worksheet.Cells[1, 1, 1, 2]) { using (var f = new Font("Calibri", 12, FontStyle.Bold)) { r.Style.Font.SetFromFont(f); r.Style.HorizontalAlignment = ExcelHorizontalAlignment.Left; } } // Gan gia tri var rowNumber = 2; list.Items.ToList().ForEach(item => { worksheet.Cells[rowNumber, 1].Value = item.Demo.Ma; worksheet.Cells[rowNumber, 2].Value = item.Demo.Ten; rowNumber++; }); // Cho các ô rộng theo dữ liệu worksheet.Cells.AutoFitColumns(0); worksheet.PrinterSettings.FitToHeight = 1; // Tên file var fileName = string.Join(".", new string[] { "Demo", "xlsx" }); // Lưu file vào server using (var stream = new MemoryStream()) { package.SaveAs(stream); } var file = new FileDto(fileName, MimeTypeNames.ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet); var filePath = Path.Combine(this.appFolders.TempFileDownloadFolder, file.FileToken); package.SaveAs(new FileInfo(filePath)); return(file); } }
/// <summary> /// Lấy danh sách. /// </summary> /// <param name="input">Điều kiện tìm kiếm.</param> /// <returns>Danh sách.</returns> public async Task <PagedResultDto <DemoForView> > GetAllAsync(DemoGetAllInputDto input) { var filter = this.demoRepository.GetAll() .WhereIf(input != null && !string.IsNullOrEmpty(input.Keyword), e => e.Ma.Contains(input.Keyword) || e.Ten.Contains(input.Keyword)); var totalCount = await filter.CountAsync(); var query = from o in filter select new DemoForView() { Demo = this.ObjectMapper.Map <DemoDto>(o), TrangThai = GlobalModel.SortedTrangThaiHieuLuc.ContainsKey((int)o.DropdownSingle) ? GlobalModel.SortedTrangThaiHieuLuc[(int)o.DropdownSingle] : string.Empty, TrangThaiDuyet = GlobalModel.SortedTrangThaiDuyet.ContainsKey((int)o.AutoCompleteSingle) ? GlobalModel.SortedTrangThaiDuyet[(int)o.AutoCompleteSingle] : string.Empty, }; var items = query.PageBy(input) .ToList(); return(new PagedResultDto <DemoForView> { TotalCount = totalCount, Items = items, }); }