public byte[] Render(IDataOnlyReport report) { var columns = report.GetColumnList(); var data = new List <object>(); var input = report.GetData(); var list = (input as IEnumerable) ?? new List <object> { input }; foreach (var item in list) { data.Add(item); } return(ExcelReportGenerator.GeneratePackageBytes(columns, data)); }
public DashboardVm() { Perioden = new List <string> { "Alle", "Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "Novermber", "Dezember" }; dh = new DataHandler(); TopProdukte = new ObservableCollection <SharedProductMonthSales>(); reportGenerator = new ExcelReportGenerator(); RawMaterialReportBtnClicked = new RelayCommand(CreateRawMaterialExcelReport); RatingReportBtnClicked = new RelayCommand(CreateRatingExcelReport); InitialzeDashboard(); NumerischePerioden = new ObservableCollection <int>() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; GenerateDemoData(); }
public async Task Export(String path, Int32 TenantId, Int64 UserId, ExpandoObject prms, HttpResponseBase response) { var rm = await RequestModel.CreateFromBaseUrl(_host, Admin, path); var action = rm.CurrentAction; var export = action.Export; if (export == null) { throw new RequestModelException($"There is no export in '{rm.ModelAction}' action"); } if (prms != null) { prms.Append(action.parameters); prms.SetIfNotExists("Id", action.Id); } IDataModel dm = await _dbContext.LoadModelAsync(action.CurrentSource, action.ExportProcedure, prms); var fileName = export.template.AddExtension(export.format.ToString()); var appReader = _host.ApplicationReader; var filePath = appReader.MakeFullPath(action.Path, fileName.RemoveHeadSlash()); if (!appReader.FileExists(filePath)) { throw new FileNotFoundException(filePath); } switch (export.format) { case RequestExportFormat.xlsx: using (var rep = new ExcelReportGenerator(appReader.FileStreamFullPathRO(filePath))) { rep.GenerateReport(dm); Byte[] bytes = File.ReadAllBytes(rep.ResultFile); if (bytes == null || bytes.Length == 0) { throw new RequestModelException("There are no bytes to send"); } SetResponseInfo(response, export); response.BinaryWrite(bytes); } break; } }
private void Initialize() { _logger = LogManager.GetCurrentClassLogger(); _timeBegin = DateTime.Now; _shiftNumber = "1"; _showReport = "none;"; _loading = "hidden;"; _downloadable = "none;"; _url = "#"; _reports = new Reports(); _shift = new Shift(); _shiftReportData = new ShiftReportsData(); _excel = new ExcelReportGenerator(); _buttonState = true; _webRootPath = reportingService.WebHostEnvironment.WebRootPath; _webRootPath = Path.Combine(_webRootPath, "files"); RemoveOldFiles(_webRootPath); }
/// <summary> /// Отчет за предыдущую смену /// </summary> private async void GetPrevShift() { _setLoading(true); _showReport = "none;"; _buttonState = false; _downloadable = "none;"; await Task.Delay(100); // Получить данные по предыдущей смене _shiftData = _shift.GetPreviousShift(); _shiftReportData = _reports.GetShiftReports(_shiftData); ExcelReportGenerator excel = new ExcelReportGenerator(); string fileName = excel.GetShiftDetailReport(_shiftReportData, _webRootPath); _url = fileName; _downloadable = "inline;"; _showReport = "block"; _buttonState = true; _setLoading(false); StateHasChanged(); }
protected void btnVendorsTotalReport_Click(object sender, EventArgs e) { string folderReport = Server.MapPath("/Reports/excel/"); string fileName = Guid.NewGuid() + "Products-Total-Report.xlsx"; string filePath = folderReport + fileName; if (Helpers.DirectoryExist(folderReport)) { ExcelReportGenerator.GenerateExcelReport(filePath); if (File.Exists(filePath)) { HttpResponse response = HttpContext.Current.Response; response.ClearContent(); response.Clear(); response.ContentType = "Application/xlsx"; response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); response.TransmitFile(filePath); response.Flush(); response.End(); } } }
public async Task GenerateReportAsync_gives_excel_with_data_from_hotel_rates_repository() { var hotelRatesRepoMock = new Mock <IHotelRateRepository>(); hotelRatesRepoMock.Setup(m => m.GetAllAsync()) .Returns(GetTestAsyncEnumerable()); const string excelFilePath = "./testexcel.xlsx"; var excelOptions = new ExcelSettingsOptions { OutputLocation = excelFilePath, SheetName = "test" }; var excelOptionsMock = new Mock <IOptions <ExcelSettingsOptions> >(); excelOptionsMock.Setup(m => m.Value) .Returns(excelOptions); var excelReportGenerator = new ExcelReportGenerator(hotelRatesRepoMock.Object, new HotelRateMapper(), excelOptionsMock.Object); await excelReportGenerator.GenerateReportAsync(); hotelRatesRepoMock.Verify(m => m.GetAllAsync(), Times.Once); File.Exists(excelFilePath).Should().Be(true); AssertExcelFile(excelFilePath); }
public async Task <Object> InvokeAsync(Int64 UserId, Int32 TenantId, Int64 Id, String Report, String Model, String Schema) { var dm = await _dbContext.LoadModelAsync(String.Empty, $"[{Schema}].[{Model}.Report]", new { UserId, TenantId, Id }); using (Stream stream = CreateStream(dm, Report)) { using (var rep = new ExcelReportGenerator(stream)) { rep.GenerateReport(dm); Byte[] bytes = File.ReadAllBytes(rep.ResultFile); if (bytes == null || bytes.Length == 0) { throw new InvalidProgramException("There are no bytes to save"); } using (var ms = new MemoryStream(bytes)) { AttachmentUpdateInfo ai = new AttachmentUpdateInfo() { UserId = UserId, TenantId = TenantId, Id = Id, Mime = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", Stream = ms, Name = Path.GetFileNameWithoutExtension(Report) }; if (String.IsNullOrEmpty(ai.Name)) { ai.Name = "Attachment"; } var aout = await _dbContext.ExecuteAndLoadAsync <AttachmentUpdateInfo, AttachmentUpdateOutput> (String.Empty, $"[{Schema}].[{Model}.SaveAttachment]", ai); return(new { aout.Id, Token = _tokenProvider.GenerateToken(aout.Token) }); } } } }
public async Task Export(String path, Int32 TenantId, Int64 UserId, ExpandoObject prms, HttpResponseBase response) { var rm = await RequestModel.CreateFromBaseUrl(_host, path); var action = rm.CurrentAction; var export = action.Export; if (export == null) { throw new RequestModelException($"There is no export in '{rm.ModelAction}' action"); } if (prms != null) { prms.Append(action.parameters); prms.SetIfNotExists("Id", action.Id); } IDataModel dm = await _dbContext.LoadModelAsync(action.CurrentSource, action.ExportProcedure, prms, action.commandTimeout); _host.CheckTypes(action.Path, action.checkTypes, dm); Stream stream = null; var templExpr = export.GetTemplateExpression(); if (!String.IsNullOrEmpty(templExpr)) { var bytes = dm.Eval <Byte[]>(templExpr); if (bytes == null) { throw new RequestModelException($"Template stream not found or its format is invalid. ({templExpr})"); } stream = new MemoryStream(dm.Eval <Byte[]>(templExpr)); } else if (!String.IsNullOrEmpty(export.template)) { var fileName = export.template.AddExtension(export.format.ToString()); var appReader = _host.ApplicationReader; var filePath = appReader.MakeFullPath(action.Path, fileName.RemoveHeadSlash()); if (!appReader.FileExists(filePath)) { throw new FileNotFoundException($"Template file not found. ({fileName})"); } stream = appReader.FileStreamFullPathRO(filePath); } switch (export.format) { case RequestExportFormat.xlsx: using (var rep = new ExcelReportGenerator(stream)) { rep.GenerateReport(dm); Byte[] bytes = File.ReadAllBytes(rep.ResultFile); if (bytes == null || bytes.Length == 0) { throw new RequestModelException("There are no bytes to send"); } SetResponseInfo(response, export, dm); response.BinaryWrite(bytes); stream.Close(); } break; case RequestExportFormat.dbf: case RequestExportFormat.csv: { var fmt = export.format.ToString().ToLowerInvariant(); var extDataProvider = _externalDataProvider.GetWriter(dm, fmt, export.GetEncoding()); if (extDataProvider == null) { throw new RequestModelException($"There is no data provider for '{fmt}' files"); } extDataProvider.Write(response.OutputStream); SetResponseInfo(response, export, dm); } break; } }
public IActionResult ExportExcel() { var arg = new VoucherStatementPageResult { ReportName = "TestReport", SummaryAccounts = new List <SummaryAccount> { new SummaryAccount { AccountName = "کارخانه دان-51011", Multiplex = new List <Multiplex> { new Multiplex { After = 5000000, Befor = 4000 }, }, }, new SummaryAccount { AccountName = "پرورش پولت-51018", Multiplex = new List <Multiplex> { new Multiplex { After = 5000000, Befor = 4000 }, }, }, new SummaryAccount { AccountName = "تخم گزار تجاری-51035", Multiplex = new List <Multiplex> { new Multiplex { After = 5000000, Befor = 4000 }, }, } }, Accounts = new List <AccountDto> { new AccountDto { Name = "حقوق پایه", Code = "81010" }, new AccountDto { Name = "اضافه کار", Code = "81011" }, }, RowResult = new List <VoucherStatementRowResult> { new VoucherStatementRowResult { AccountCode = "13351", Credit = 50000, Debit = 0 }, new VoucherStatementRowResult { AccountCode = "21253", Credit = 0, Debit = 50000 }, new VoucherStatementRowResult { AccountCode = "13556", Credit = 1000000, Debit = 0 }, new VoucherStatementRowResult { AccountCode = "13500", Credit = 1000000, Debit = 0 }, new VoucherStatementRowResult { AccountCode = "13499", Credit = 2000000, Debit = 0 }, new VoucherStatementRowResult { AccountCode = "22500", Credit = 0, Debit = 4000000 } } }; var result2 = ExcelReportGenerator.VoucherStatementExcelReport(arg); var result22Url = ExcelReportGenerator.VoucherStatementExcelReportUrl(arg, @"E:\TestFolder", "MyCustomName"); var result = ExcelReportGenerator.TestReport(); return(Ok(result22Url)); }