Delphi - Cellaformázás az Excel táblában Delphi-ből

Office 9. rész

forráskód letöltése
Cikksorozatunk előző részében már eljutottunk odáig, hogy tudunk új dokumentumot létrehozni az Excel-ben, és abba adatokat bevinni. Ebben a cikkben most néhány cellaformázással kapcsolatos funkciót valósítunk meg! Az előző részben már használt szorzótáblánkat fogjuk egy kicsit továbbfejleszteni. A táblázatot és a cellákat különböző vastagságú vonalakkal bekeretezzük, és a betűtípust, valamint a cellában lévő adatok igazítását is beállítjuk.

Talán a legegyszerűbb lesz, ha lépésenként végigmegyünk a forráskódon, és megnézzük, hogy hogyan jön létre a szorzótáblánk. A művelet a Button1 OnClick eseményénél indul el.
procedure TForm1.Button1Click(Sender: TObject);
var x, y:integer;
    row, col:string;
    Range: OleVariant;
begin
Mindenekelőtt aktivizáljuk a munkafüzetünket, hátha a felhasználó közben átváltott egy másikra:
  MyWorkbook.Activate
Kijelöljük azokat a cellákat, ahová a szorzótáblánkat szeretnénk elhelyezni, és néhány tulajdonságot beállítunk ezekre a cellákra. A műveletek kb. olyan sorrendben követik egymást, ahogyan azt manuálisan csinálnánk.
A Borders osztály LineStyle property-jének beállításával az összes kijelölt cella körvonala a megadott stílusú vonalra változik. A LineStyle property értéke a következő konstansok egyike lehet: xlContinuous, xlDash, xlDashDot, xlDashDotDot, xlDot, xlDouble, xlSlantDashDot, és xlLineStyleNone
A Borders.Weight property segítségével beállítjuk a vonal vastagságát. Ezt szintén konstansokkal kell megadnunk: xlHairline, xlThin, xlMedium, vagy xlThick.
A cellák szövegének vízszintes igazítását a HorizontalAlignment property-vel adhatjuk meg: xlHAlignCenter, xlHAlignDistributed, xlHAlignJustify, xlHAlignLeft, vagy xlHAlignRight. Range és Style objektumoknál a következő konstansok is használhatók: xlHAlignCenterAcrossSelection, xlHAlignFill, és xlHAlignGeneral.
Beállítjuk az oszlopok szélességét is ColumnWidth property-vel.
  Range:=ExcelApp.Range['A1','K11'];
  Range.Select;
  Range.Borders.LineStyle:=xlContinuous;
  Range.Borders.Weight:=xlThin;
  Range.HorizontalAlignment:=xlHAlignCenter;
  Range.ColumnWidth:=5;
A következő lépésben azoknak a celláknak a tulajdonságait állítjuk be, amelyek a szorzótábla eredményeit tartalmazzák. Itt már a betűtípus tulajdonságait is beállítjuk, melyeket a Font property-n keresztül adhatunk meg. A kijelölt rész alsó és jobb oldali széleinél egy kicsit vastagabb vonalat húzunk. Ehhez már külön kell kezelnünk a széleket, mert ha a fenti módon járnánk el, akkor az összes kijelölt cella összes oldala vastagabb szegéllyel jelenne meg.
  Range:=ExcelApp.Range['B2','K11'];
  Range.Select;
  Range.Font.Name:='Times';
  Range.Font.Size:=12;
  Range.Font.Bold:=integer(false);
  Range.HorizontalAlignment:=xlHAlignCenter;
  Range.Borders.Item[xlEdgeRight].Weight:=xlMedium;
  Range.Borders.Item[xlEdgeBottom].Weight:=xlMedium;

Office cikksorozat