Nieuws
Foto's
Artikelen
Componenten
Applicaties
Kleinkunst

TscExcelExport

Versie 4.42
Oktober 2021
Delphi
VCL

Het TscExcelExport component is een zeer uitgebreid, krachtig maar eenvoudig te gebruiken component om alle records van een dataset vanuit Embarcadero Delphi te exporteren naar Microsoft Excel. Bovendien zijn er vele mogelijkheden voorzien voor het wijzigen van de layout, het gebruik van conditionele formatering, het toevoegen van totalen, het maken van groepen, het aanzetten van filters, ... Het component werkt in Delphi 5, 6, 7, 2006, 2007, 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney en 11 Alexandria en het ondersteunt alle Excel versies van 97 tot 2019.

TscExcelExport component (Delphi VCL)

TscExcelExport component (Delphi VCL)

Mogelijkheden

Properties

Allerlei instellingen om de layout van het werkblad te bepalen, zijn voorzien.
  • Naam van werkblad en bestand
  • Teksten voor hoofding en voettekst
  • Begin rij en kolom van hoofding, voettekst, titels en data
  • Kolombreedte instellen of automatisch laten aanpassen
  • Lettertype van hoofding, voettekst, titels, samenvatting en data (Alignment, VerticalAlignment, WrapText, Orientation, CellMerge)
  • Achtergrondkleur en rand van hoofding, voettekst, titels, samenvatting en data
  • Berekeningen (SOM, MIN, MAX, AVG, COUNT) voor numerieke of opgegeven velden
  • AutoFilter voor titels
  • Groeperen met opgegeven velden
  • Nieuwe werkbladen aanmaken of bestaande bestanden aanvullen
  • Toegang tot de Excel objecten (ExcelApplication, ExcelWorkbook, ExcelWorksheet, ...)
  • ...

Events

  • Voor het bepalen van achtergrondkleur en font kleur, naam en grootte per cel
  • Voor het exporteren van data zonder gebruik te maken van een TDataset

Methods

  • Exporteren naar Excel
  • Opslaan van werkblad als XLSX (Open XML), XLS, HTML, XML of CSV
  • Afdrukvoorbeeld tonen

Component editor

  • Via de component editor kan je op een eenvoudige manier verschillende instellingen wijzigen

Live templates

  • Live templates voor alle Delphi versies sinds 2006 (ExcelExportUse en ExcelExportCreate)

Info

Type library / OCX / COM

  • In dit ExcelExport component wordt er gebruik gemaakt van de Office Server componenten van de Embarcadero COM type libraries om OLE automation met Excel mogelijk te maken.
  • Door middel van compiler directives (in unit scExcelExportConfig.inc) kan je de default type library overschrijven. De mogelijkheden zijn Excel97, Excel2000, ExcelXP en Excel2010.
  • Microsoft Excel dient dan ook op de PC geïnstalleerd te zijn om met dit component te werken.

Delphi / Office

  • Dit VCL component is getest in
    • Borland Delphi 5 (SP1)
    • Borland Delphi 6
    • Borland Delphi 7
    • Borland Delphi (BDS) 2005
    • Borland Delphi (BDS) 2006
    • CodeGear Turbo Delphi
    • CodeGear Delphi 2007
    • CodeGear Delphi 2009
    • Embarcadero Delphi 2010
    • Embarcadero Delphi XE
    • Embarcadero Delphi XE2
    • Embarcadero Delphi XE3
    • Embarcadero Delphi XE4
    • Embarcadero Delphi XE5
    • Embarcadero Delphi XE6
    • Embarcadero Delphi XE7
    • Embarcadero Delphi XE8
    • Embarcadero Delphi 10 Seattle
    • Embarcadero Delphi 10.1 Berlin
    • Embarcadero Delphi 10.2 Tokyo
    • Embarcadero Delphi 10.3 Rio & Community Edition
    • Embarcadero Delphi 10.4 Sydney
    • Embarcadero Delphi 11 Alexandria
  • Dit ExcelExport component werkt met
    • Microsoft Excel 97
    • Microsoft Excel 2000
    • Microsoft Excel XP
    • Microsoft Excel 2003
    • Microsoft Excel 2007
    • Microsoft Excel 2010
    • Microsoft Excel 2013
    • Microsoft Excel 2016
    • Microsoft Excel 2019
    • Microsoft Excel 365
  • Het is getest in Nederlandstalige en enkele Engelstalige Office versies.
  • Het geeft ook toegang tot de Excel Application, Workbook en Worksheet objecten waarmee u alle VBA properties en methods kan aanspreken.

Demo applicatie

  • Een volledige demo applicatie met 18 voorbeelden wordt meegeleverd om alle mogelijkheden van het component uit te proberen.
  • De project file en de source code kan je terugvinden in de Source demo folder. De executable DemoExcelExport.exe is ook aanwezig in deze folder.

Installatie

  • Stap 1: Open de run-time package ExcelExportPack5.dpk (voor Delphi5), ExcelExportPack6.dpk (voor Delphi6) ExcelExportPack7.dpk (voor Delphi7), ExcelExportPack9.dpk (voor Delphi 2005), ExcelExportPack10.dproj (voor Delphi 2006 en Turbo Delphi), ExcelExportPack11.dproj (voor Delphi 2007), ExcelExportPack12.dproj (voor Delphi 2009), ExcelExportPack14.dproj (voor Delphi 2010), ExcelExportPackXE.dproj (voor Delphi XE) ExcelExportPackXE2.dproj (voor Delphi XE2), ..., ExcelExportPackXE10.dproj (voor Delphi XE10), ExcelExportPackD10.dproj (voor Delphi 10 Seattle), ExcelExportPackD101.dproj (voor Delphi 10.1 Berlin), ExcelExportPackD102.dproj (voor Delphi 10.2 Tokyo), ExcelExportPackD103.dproj (voor Delphi 10.3 Rio en Community Edition) en ExcelExportPackD104.dproj (voor Delphi 10.3 Sydney). Compileof Build deze package.
  • Stap 2: Open de design-time package dclExcelExportPackx.dproj en Compile of Build het
  • Stap 3: Install het. De optie Install is alleen beschikbaar in het contextmenu als je met de rechtermuisknop klikt
  • Het TscExcelExport component verschijnt op het tabblad SC van het componenten palet.
  • Als je het component wil toevoegen aan een reeds bestaande package, zorg er dan voor dat het overeenkomstige DCP bestand dclOffice, dat gevonden kan worden in de Delphi/Lib map, wordt toegevoegd als "required". Als je een nieuw design-time package wil aanmaken, moet je het DCP bestand designide.dcp toevoegen.

Technische info

  • Zie de hoofding van de unit unit scExcelExport.pas voor meer informatie over alle properties, methods, events, ...

 

Schermvoorbeelden

 

Delphi voorbeelden

Voorbeeld 1 : meest eenvoudige manier om dataset naar Excel te exporteren

scExcelExport1.Dataset:=Table1;
scExcelExport1.ExportDataset;
scExcelExport1.Disconnect;

Voorbeeld 2 : layout properties gebruiken, totalen toevoegen en opslaan

scExcelExport1.WorksheetName := 'MijnDataset';
scExcelExport1.Dataset:=Table1;
scExcelExport1.StyleColumnWidth:=cwOwnerWidth;
scExcelExport1.ColumnWidth := 20;
scExcelExport1.HeaderText.Text := 'Hoofding';
scExcelExport1.MergeHeaderCells := True;
scExcelExport1.BeginRowHeader := 2;

scExcelExport1.FontTitles := LabelTitle.Font;
scExcelExport1.FontTitles.Orientation := 45;
scExcelExport1.BorderTitles.BackColor := clYellow;
scExcelExport1.BorderTitles.BorderColor := clRed;
scExcelExport1.BorderTitles.LineStyle := blLine;
scExcelExport1.BeginRowTitles := 5;
scExcelExport1.FontData := LabelData.Font;

scExcelExport1.SummarySelection := ssValues;
scExcelExport1.SummaryCalculation := scMAX;

scExcelExport1.AutoFilter := True;
scExcelExport1.ExcelVisible:=False;
try
  scExcelExport1.ExportDataset;
  scExcelExport1.ExcelWorkSheet.Range['A1','A10'].Value := 'Delphi';
  // Excel 2007 Open XML format (bestands extensie XLSX)
  if scExcelExport1.ExcelVersion = 12 then
    scExcelExport1.SaveAs(ExtractFilePath(Application.ExeName)+'ExcelExport2007.xlsx',ffXLSX);
  // Excel 2000/XP/2003 format (bestands extensie XLS)
  scExcelExport1.SaveAs(ExtractFilePath(Application.ExeName)+'ExcelExport2003.xls',ffXLS);  
finally
  scExcelExport1.Disconnect;
end;

Voorbeeld 3 : data groeperen

try
  scExcelExport1.Dataset:=QuerySortShipVia;

  scExcelExport1.SummarySelection := ssValues;
  scExcelExport1.SummaryCalculation := scAVG;
  scExcelExport1.SummaryDisplayFormat := '###0.000';

  scExcelExport1.StyleColumnWidth := cwEnhAutoFit;

  scExcelExport1.GroupFields.Clear;
  scExcelExport1.GroupFields.Add('ShipVia');
  scExcelExport1.GroupFields.Add('Terms');

  scExcelExport1.ExportDataset;
finally
  scExcelExport1.Disconnect;
end;

Voorbeeld 4 : meerdere datasets exporteren

scExcelExport1.ExcelVisible:=True;
try
  scExcelExport1.Dataset:=Table1;
  scExcelExport1.WorksheetName:='1';
  scExcelExport1.ConnectTo := ctNewExcel;
  scExcelExport1.ExportDataset;
  scExcelExport1.Disconnect;
  scExcelExport1.Dataset:=Table2;
  scExcelExport1.WorksheetName:='2';
  scExcelExport1.ConnectTo := ctNewWorkbook;
  scExcelExport1.ExportDataset;
  scExcelExport1.Disconnect;
  scExcelExport1.Dataset:=Table3;
  scExcelExport1.WorksheetName:='3';
  scExcelExport1.ConnectTo := ctNewWorksheet;
  scExcelExport1.ExportDataset;
finally
  scExcelExport1.Disconnect;
end;

Voorbeeld 5 : achtergrondkleur en font stijl wijzigen in OnGetCellStyle event

procedure scExcelExportGetCellStyleEvent(Sender: TObject; Field: TField; 
  var ColorBackground : TColor; FontCell : TxlFont);
begin
  if Field.FieldName = 'CustNo' then
  begin
    if Field.Value > 2000 then
    begin
      FontCell.Color := clRed;
      FontCell.Name := 'Times New Roman';
      FontCell.Size := 14;
    end;
    if Field.Value > 3000 then
    begin
      FontCell.Color := clGreen;
      FontCell.Style := [fsBold];
    end;
  end;

  if Field.FieldName = 'EmpNo' then
  begin
    if Field.Dataset.FieldByName('CustNo').Value > 2000 then
      ColorBackground := clRed;
  end;

  if Field.DataSet.FieldByName('EmpNo').Value > 100 then
    ColorBackground := clYellow;
end;

Voorbeeld 6 : toegang tot de properties van het Excel Worksheet object

try
  scExcelExport1.Dataset:=Table1;
  scExcelExport1.Connect;
  scExcelExport1.ExcelWorkSheet.Range['A2','C8'].Borders.Color := clRed;

  scExcelExport1.ExportDataset;

  scExcelExport1.ExcelWorkSheet.Range['B2','B2'].Select;  scExcelExport1.ExcelApplication.ActiveWindow.FreezePanes := True;

  scExcelExport1.ExcelWorkSheet.Range['B5','E7'].Cells.Clear;

  scExcelExport1.ExcelWorkSheet.Range[Format('A%d',[scExcelExport1.EndRowData+3]),
    Format('A%d',[scExcelExport1.EndRowData+3])].Value := 'Extra informatie toevoegen aan Excel werkblad';

  scExcelExport1.ExcelWorkSheet.Range['M1','M1'].Value := 10;
  scExcelExport1.ExcelWorkSheet.Range['M2','M2'].Value := 5;
  scExcelExport1.ExcelWorkSheet.Range['M3','M3'].Value := '=M1+M2';
  scExcelExport1.ExcelWorkSheet.Range['M3','M3'].Font.Color := clRed;
  scExcelExport1.ExcelWorkSheet.Range['M1','M20'].EntireColumn.Autofit;

  scExcelExport1.ExcelWorkSheet.Range['B2','B2'].AddComment('Dit is commentaar voor een cel');
finally
  scExcelExport1.Disconnect;
end;

Copyrights en verspreiding

  • Alle copyrights van dit Delphi component zijn eigendom van de auteur Stefan Cruysberghs.
  • Dit component is open-source en kan gratis worden verspreid en gebruikt voor niet-commerciĆ«le doeleinden. In commerciĆ«le omgevingen is een licentie vereist!
  • Alle sources (met gedetailleerde commentaar) worden meegeleverd.
  • De auteur geeft geen garantie op het foutloos werken van dit component.
  • Geregistreerde gebruikers kunnen er wel op rekenen dat bugs zo spoedig mogelijk opgelost worden.

Registratie

  • Als u dit component interessant vindt of het in een commerciële omgeving gebruikt, dient u dit component te registreren.
  • Hiermee moedigt u de auteur aan om dit ExcelExport component verder te ontwikkelen en te verbeteren.
  • Na registratie heeft u geen registratiesleutel nodig! Met de versie die u op deze pagina kan downloaden, beschikt u over alle functionaliteit.

Voordelen van registratie

  • Volledige source code voor Delphi versie 5 tot XE8 en tot 11 Alexandria.
  • Ongelimiteerde licentie voor uitrollen (deployment) in commerciële omgevingen.
  • Levenslange licentie, dus als u eenmaal de licentiekosten betaald heeft, hoeft u niet nooit meer te betalen voor updates.
  • Basis ondersteuning kan gevraagd worden via e-mail.

Licentie één ontwikkelaar (Single developer license)

  • Prijs: 35 EURO
  • Koop licentie via PayPal

Licentie voor volledig bedrijf (Site license, onbeperkt aantal developers, onbeperkte tijd geldig)

  • Prijs: 130 EURO
  • Koop licentie via PayPal


Ben je een tevreden thuisgebruiker van dit component en wil je de ontwikkeling verder steunen, dan kan je 2 euro doneren via PayPal. Alvast bedankt voor de steun!

Downloaden

TscExcelExport component
  • Inhoud: TscExcelExport component met sources, demo applicatie en documentatie
  • Versie: 4.42 (2021-10-27)
  • Grootte: 11.29 Mb
  • Auteur: Stefan Cruysberghs
Nu downloaden