Output as Excel (C#)

Set up and configure output to Microsoft® Excel™ from your reporting application. This option is useful if you want to perform custom calculations in Excel.

Note: Excel reports, as output from Genero Report Writer, do not print at high quality. If you require high-fidelity printing, use one of the other output options, such as SVG.

Example

This code snippet shows some of the properties and methods available for an object of the ExcelRenderer class:
// code snippet starts

String designFile = "OrderReport.4rp";
String outputFilename = "SalesList.xlsx";
FormatHandler handler = new FormatWriter(outputFilename);
ExcelRenderer renderer = new ExcelRenderer(handler);

//configuring Excel output
renderer.mergeCells = false;
renderer.mergePages = true;
renderer.outputFormat = ExcelRenderer.OutputFormat.XLSX;

FourRpLayouter report = new FourRpLayouter(designFile, renderer);
//Run the report 
report.debugLevel = 9;

// some code omitted - view full source in demo

report.runFromSerializable(data);

// open the file
System.Diagnostics.Process.Start(outputFilename);

// code snippet ends
In this example:
  • A FormatHandler object named handler is defined using the FormatWriter class, taking the name of the output file as its input.
  • The mergeCells property, when set to true, activates cell merging when the content spans several cells; when set to false, separate empty cells are created.
  • The mergePages property, when set to true, activates page merging; when set to false, separate sheets for each page are created.
  • The outputFormat property sets the output format as determined by the argument. When set to ExcelRenderer.OutputFormat.XLSX, the format is output as XLSX format (for Microsoft Excel starting with version 2007).

For the full list of properties and methods for this renderer class, refer to the Genero Report Writer .NET API documentation.

Excel report output

The output is in the specified Excel format, with the XLS format limited to 65,536 rows. In contrast, for the XLSX format the document is generated with constant memory consumption, so that very large documents can be produced without exhausting heap space.

Note: The XLSX format can only be opened with newer versions of Microsoft Excel (2007 or later). A backward compatibility pack can be downloaded from Microsoft; however, the XLSX format is then subject to the 65,536 limit of the earlier versions.

Any existing report, including ASCII, can be output to the spreadsheet.

The layout of the cells (size, font color, etc.) can be predictably controlled from the Report Designer. The goal is to put the report layout into the cells of the spreadsheet efficiently.

When items in the report design overlap, by default the placement but not the alignment is preserved in the spreadsheet. To make the necessary decisions, Genero Studio marks the column and row boundaries internally with tabs. If two consecutive tabs have no element that bounds on them, the column or row collapses. The implication of this is:

  • White space (empty columns, empty rows) is eliminated when possible.
  • Elements that overlap may be placed in the same column, but they maintain their relative placement (above/below).
  • Contiguous items are never placed in the same column, but maintain their relative placement and alignment.

The values in the cells are generated for the report, not the Excel formulas.

The following report elements are specially rendered in Excel:

  • Graphical elements such as bar codes are rendered as images.
  • Business graphs are rendered as tables.
  • For pivot tables, only the fact rows are shipped. The pivot table is therefore rendered as a flat table structure without being disrupted by group totals. You can then use the data to create an Excel pivot table with business charts and row-spanning formulas.