Skip to main content
All docs
V25.2
  • TdxReport.ExportToCSV(TStream) Method

    Exports report content to a stream in the comma-separated values (CSV) format.

    Declaration

    procedure ExportToCSV(AStream: TStream);

    Parameters

    Name Type Description
    AStream TStream

    The target stream.

    Remarks

    Call the ExportToCSV procedure to export report content to a stream in the CSV format.

    The ExportTimeout property allows you to set a timeout interval (in milliseconds) for export operations. If the specified export timeout is reached, an exception is thrown.

    CSV Export Settings

    The Report Designer dialog allows you to configure CSV export settings (encoding, separator, export mode, etc.). Open the Properties tab and expand the following nodes to modify CSV export settings: Behavior | Export Options | CSV Export Options.

    VCL Reports: Export Format Settings in the Report Designer Dialog

    Code Example: Export Report Content to a CSV File

    The following code example configures a memory-based data source (TdxBackendInMemoryJSONConnection), loads an XML-based (REPX) report layout, and export generated report (TdxReport) content to a file in the CSV format using an intermediary TMemoryStream object:

    uses
      dxBackend.ConnectionString.JSON,   // Declares the TdxBackendInMemoryJSONConnection component
      dxReport,                          // Declares the TdxReport component
      dxShellDialogs;                    // Declares the TdxSaveFileDialog component
    // ...
    
    procedure TMyForm.cxButtonExportToCSVClick(Sender: TObject);
    var
      AReport: TdxReport;
      AJSONDataConnection: TdxBackendInMemoryJSONConnection;
      AStream: TMemoryStream;
      AJSONData: string;
    begin
      // Define a table that consists of three columns ("id", "Region", and "Sales") and five data rows
      AJSONData :=
    
      '[{"id": 1, "Region": "Asia", "Sales": 4.7685},' +          // Row #1
       '{"id": 2, "Region": "Australia", "Sales": 1.9576},' +     // Row #2
       '{"id": 3, "Region": "Europe", "Sales": 3.3579},' +        // Row #3
       '{"id": 4, "Region": "North America", "Sales": 3.7477},' + // Row #4
       '{"id": 5, "Region": "South America", "Sales": 1.8237}]';  // Row #5
    
      if not dxSaveFileDialog1.Execute(Handle) then Exit; // Displays the "Save File" dialog
    
      AJSONDataConnection: := TdxBackendInMemoryJSONConnection.Create(Self);  // Creates a data connection
      try
        AJSONDataConnection.Name := 'JSONData';       // Assigns a name to the created data connection
        AJSONDataConnection.SetJSONValue(AJSONData);  // Assigns the defined JSON data string
        AReport := TdxReport.Create(Self);            // Creates a TdxReport component
        try
          AReport.Layout.LoadFromFile('MyReportLayout.repx');  // Loads an XML-based report layout
          AReport.ReportName := 'MyReport';           // Defines a report name
          AStream := TMemoryStream.Create;            // Creates a stream as an intermediary container
          try
            AReport.ExportToCSV(AStream);           // Exports content to a stream in the CSV format
            AStream.SaveToFile(dxSaveFileDialog1.FileName);  // Saves CSV stream content to a file
          finally
            AStream.Free;                    // Releases the intermediary memory stream
          end;
        finally
          AReport.Free;                      // Releases the TdxReport component
        end;
      finally
        AJSONDataConnection.Free;            // Releases the data connection component
      end;
    end;
    

    To see the report export functionality in action, run the Report Designer/Viewer demo in the VCL Demo Center installed with compiled DevExpress VCL demos. Select any demo in the sidebar on the left, click the Export button, and use any export option listed in the menu.

    Download: Compiled VCL Demos

    Tip

    You can find full source code for the installed compiled Report demo in the following folder:

    %PUBLIC%\Documents\DevExpress VCL Demos\MegaDemos\Product Demos\ExpressReports\

    Other Export Methods

    You can call the following procedures to export report content to a stream in other formats:

    ExportTo
    Exports report content to a stream in any supported format.
    ExportToDOCX
    Exports report content to a stream as an Office OpenXML (DOCX) document.
    ExportToHTML
    Exports report content to a stream as an HTML document.
    ExportToImage

    Exports report content to a stream in the current image export format (selected using the Report Designer dialog).

    The default image export format is PNG (Portable Network Graphics).

    ExportToMHT
    Exports report content to a stream as a MIME HTML (MHT) document.
    ExportToPDF
    Exports report content to a stream in PDF format.
    ExportToRTF
    Exports report content to a stream as an RTF-formatted string.
    ExportToText
    Exports report content to a stream as plain text.
    ExportToXLS
    Exports report content to a stream in Microsoft Excel® binary format (XLS).
    ExportToXLSX
    Exports report content to a stream in Office Open XML spreadsheet format (XLSX).
    See Also