Search Results for

    Show / Hide Table of Contents

    Simple Export (FireMonkey)

    Note

    This demo is available in your FNCGridExcelBridge installation at <FNCGridExcelBridge Install Folder>\Demo\FMX\SimpleExport and also at https:​//​github.​com/​tmssoftware/​TMS-​FNCGrid-​Excel-​bridge-​demos/​tree/​master/​delphi/​fmx/​Simple​Export

    Overview

    This demo shows how to export a grid to Excel, PDF or HTML using TMS FNC Grid Excel bridge

    Concepts

    • In the checkboxes at the left, you can experiment with multiple option combinations and see which one suits your needs best.

    • In this example we use the simpler one-liners to do the export. Look at the templates demo for an example on more complex exporting.

    Files

    UMainForm.pas

    unit UMainForm;
    
    interface
    
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
      FMX.Objects, FMX.Controls.Presentation, FMX.TMSFNCTypes, FMX.TMSFNCUtils,
      FMX.TMSFNCGraphics, FMX.TMSFNCGraphicsTypes, FMX.TMSFNCGridCell,
      FMX.TMSFNCGridOptions, FMX.TMSFNCCustomControl, FMX.TMSFNCCustomScrollControl,
      FMX.TMSFNCGridData, FMX.TMSFNCCustomGrid, FMX.TMSFNCGrid,
      FMX.TMSFNCGridExcelExport;
    
    type
      TMainForm = class(TForm)
        Panel1: TPanel;
        Panel2: TRectangle;
        cbFormatting: TCheckBox;
        cbCellMargins: TCheckBox;
        cbCellsAsStrings: TCheckBox;
        cbCellSizes: TCheckBox;
        cbFormulas: TCheckBox;
        cbHardBorders: TCheckBox;
        cbHiddenColumns: TCheckBox;
        cbHiddenRows: TCheckBox;
        cbImages: TCheckBox;
        cbOutlines: TCheckBox;
        cbRawHTML: TCheckBox;
        cbReadOnlyToLocked: TCheckBox;
        cbShowGridlines: TCheckBox;
        cbSummaryRowsBelow: TCheckBox;
        cbStandardPalette: TCheckBox;
        cbWordWrapped: TCheckBox;
        cbCheckboxes: TCheckBox;
        cbHyperlinks: TCheckBox;
        Label1: TLabel;
        DataGrid: TTMSFNCGrid;
        SaveDialogExcel: TSaveDialog;
        SaveDialogPdf: TSaveDialog;
        SaveDialogHtml: TSaveDialog;
        BtnExportPdf: TButton;
        BtnExportHTML: TButton;
        BtnAbout: TButton;
        BtnExportExcel: TButton;
        ExcelExport: TTMSFNCGridExcelExport;
        procedure FormCreate(Sender: TObject);
        procedure BtnExportExcelClick(Sender: TObject);
        procedure BtnExportHTMLClick(Sender: TObject);
        procedure BtnExportPdfClick(Sender: TObject);
        procedure BtnAboutClick(Sender: TObject);
      private
        procedure SetExportOptions;
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      MainForm: TMainForm;
    
    implementation
    
    {$R *.fmx}
    
    
    procedure TMainForm.FormCreate(Sender: TObject);
    begin
      DataGrid.RowCount := 25;
      DataGrid.ColumnCount := 12;
    
      DataGrid.MergeCells(1, 1, 2, 2);
      DataGrid.MergeCells(1, 0, 2, 1);
      DataGrid.MergeCells(0, 2, 1, 2);
    
    
      DataGrid.Cells[1, 1] := '<font color="#FF0000">This</font> is <b>bold</b>';
      DataGrid.Cells[1, 0] := '<img src="idx:0"><font face="tahoma">This is <b>Tahoma</b></font>';
    
      DataGrid.Cells[0, 2] := 'Fixed col'#13'merged';
    
      DataGrid.MergeCells(2, 3, 2, 2);
      DataGrid.Cells[2, 3] := 'Here we have the <a href="action">link</a>';
      DataGrid.Colors[2, 3] := TAlphaColors.Yellow;
    
      DataGrid.MergeCells(0, 8, DataGrid.ColumnCount - 1, 1);
      DataGrid.Cells[0, 8] := 'This is a fixed merged cell across the grid';
    
      DataGrid.MergeCells(4, 2, 4, 6);
    
      DataGrid.AddBitmapFile(4, 2, '..\..\slr.jpg');
    
      DataGrid.MergeCells(1, 6, 2, 2);
      DataGrid.Cells[1, 6] := 'Wordwrapped text in a merged cell displayed here';
    
      DataGrid.MergeCells(1, 10, 3, 1);
      DataGrid.AddCheckBox(1, 10, False);
      DataGrid.Cells[1, 10] := 'Checkbox 1';
      DataGrid.RowHeights[10] := 50;
      DataGrid.MergeCells(1, 11, 3, 1);
      DataGrid.AddCheckBox(1, 11, True);
      DataGrid.Cells[1, 11] := 'Checkbox 2';
    
      DataGrid.Cells[0, 12] := 'Combo';
    
      DataGrid.MergeCells(1, 12, 3, 1);
    //todo
    {
      DataGrid.AddComboString('BMW');
      DataGrid.AddComboString('Audi');
      DataGrid.AddComboString('Porsche');
      DataGrid.AddComboString('Ferrari'); }
    
      DataGrid.Comments[1,13] := 'This comment is at the end of the grid!';
    
      DataGrid.AddNode(3,5);
      DataGrid.AddNode(5,2);
    
      DataGrid.ColumnWidths[5] := 100;
          //todo
          {
      DataGrid.AddMultiImage(5, 10, 0, haBeforeText, vaTop);
      DataGrid.CellImages[5, 10].Add(0);
      DataGrid.CellImages[5, 10].Add(0);}
      DataGrid.Cells[5, 10] := 'Info';
    
     { DataGrid.AddMultiImage(5, 11, 0, haBeforeText, vaTop);
      DataGrid.CellImages[5, 11].Add(1); }
      DataGrid.Cells[5, 11] := 'Warning';
    
     // DataGrid.AddShape(2, 9, csArrowDown, clRed, clBlack, haCenter, vaTop);
    //  DataGrid.AddShape(1, 1, csCircle, clBlue, clBlack, haRight, vaCenter);
    
      DataGrid.Colors[2, 5] := TAlphaColors.Red;
    {  DataGrid.ColorsTo[2, 5] := TAlphaColors.Navy;
      DataGrid.Gradients[3, 5] := TCellGradientDirection.GradientVertical;
      DataGrid.Colors[3, 5] := TAlphaColors.Yellow;
      DataGrid.ColorsTo[3, 5] := TAlphaColors.Green;
      DataGrid.Gradients[3, 5] := TCellGradientDirection.GradientHorizontal;}
    
      DataGrid.RowHeights[15] := 60;
    
      DataGrid.Cells[5, 12] := 'A cell <a href="https://www.tmssoftware.com" title="TMS software">hyperlink</a>';
      DataGrid.Cells[5, 13] := 'https://www.tmssoftware.com';
    
    
    
    end;
    
    procedure TMainForm.SetExportOptions;
    begin
        ExcelExport.ExportOptions.CellSizes := cbCellSizes.IsChecked;
        ExcelExport.ExportOptions.Formulas := cbFormulas.IsChecked;
        ExcelExport.ExportOptions.CellsAsStrings := cbCellsAsStrings.IsChecked;
        ExcelExport.ExportOptions.CellFormatting := cbFormatting.IsChecked;
        ExcelExport.ExportOptions.WordWrapped := cbWordWrapped.IsChecked;
        ExcelExport.ExportOptions.RawHTML := cbRawHTML.IsChecked;
        ExcelExport.ExportOptions.Images := cbImages.IsChecked;
        ExcelExport.ExportOptions.Checkboxes := cbCheckboxes.IsChecked;
        ExcelExport.ExportOptions.HiddenColumns := cbHiddenColumns.IsChecked;
        ExcelExport.ExportOptions.HiddenRows := cbHiddenRows.IsChecked;
        ExcelExport.ExportOptions.HardBorders := cbHardBorders.IsChecked;
        ExcelExport.ExportOptions.ShowGridLines := cbShowGridLines.IsChecked;
        ExcelExport.ExportOptions.CellMargins := cbCellMargins.IsChecked;
        ExcelExport.ExportOptions.ReadonlyCellsAsLocked := cbReadOnlyToLocked.IsChecked;
        ExcelExport.ExportOptions.Outlines := cbOutlines.IsChecked;
        ExcelExport.ExportOptions.SummaryRowsBelowDetail := cbSummaryRowsBelow.IsChecked;
        ExcelExport.ExportOptions.UseExcelStandardColorPalette := cbStandardPalette.IsChecked;
        if cbHyperlinks.IsChecked then
          ExcelExport.ExportOptions.Hyperlinks := THyperlinkExportMode.FirstLink
          else ExcelExport.ExportOptions.Hyperlinks := THyperlinkExportMode.None;
    end;
    
    procedure TMainForm.BtnExportExcelClick(Sender: TObject);
    begin
      if not SaveDialogExcel.Execute then exit;
    
      SetExportoptions;
      ExcelExport.Export(SaveDialogExcel.FileName, 'Result');
    
      if TTMSFNCUtils.Message('Do you want to open the generated file?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrYes then
      begin
        TTMSFNCUtils.OpenFile(SaveDialogExcel.FileName);
      end;
    
    
    end;
    
    procedure TMainForm.BtnExportHTMLClick(Sender: TObject);
    begin
      if not SaveDialogHtml.Execute then exit;
    
      SetExportoptions;
      ExcelExport.ExportHtml(SaveDialogHtml.FileName, THtmlExportMode.SingleSheet);
    
      if TTMSFNCUtils.Message('Do you want to open the generated file?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrYes then
      begin
        TTMSFNCUtils.OpenFile(SaveDialogHtml.FileName);
      end;
    
    end;
    
    procedure TMainForm.BtnExportPdfClick(Sender: TObject);
    begin
      if not SaveDialogPdf.Execute then exit;
    
      SetExportoptions;
      ExcelExport.ExportPdf(SaveDialogPdf.FileName);
    
      if TTMSFNCUtils.Message('Do you want to open the generated file?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrYes then
      begin
        TTMSFNCUtils.OpenFile(SaveDialogPdf.FileName);
      end;
    
    end;
    
    procedure TMainForm.BtnAboutClick(Sender: TObject);
    begin
      ShowMessage('This is a demo showing the basic functionality of TTMSFNCGridExcelExport');
    
    end;
    
    
    end.
    
    In This Article
    Back to top TMS FNC Grid Excel bridge v3.2.1
    © 2002 - 2024 tmssoftware.com