Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi formatieren einer exceltabelle aus delphi raus (https://www.delphipraxis.net/35366-formatieren-einer-exceltabelle-aus-delphi-raus.html)

stonimahoni 6. Dez 2004 10:16


formatieren einer exceltabelle aus delphi raus
 
hi leute...

folgendes problem :
ich hab soweit geschafft meine daten aus delphi in eine excel tabelle zu exportieren. soweit sogut.
jetzt würde ich gern noch die senkrechten linien zwischen den feldern in der exceltabelle stärker hervorheben - doch wie realisiere ich das ?

anbei der code mit dem ich das excelfomular soweit formatiere ( bzgl farbe und zellengrösse und schriftgrösse ) :
Delphi-Quellcode:
    // formatieren der Exceltabelle
    Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Font.Bold                  := True;
    Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Columns.Interior.ColorIndex := 14;
    Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Columns[t-5].ColumnWidth   := 6;
    Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Columns[t-4].ColumnWidth   := 18;
    Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Columns[t-3].ColumnWidth   := 14;
    Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Columns[t-2].ColumnWidth   := 14;
    Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Columns[t-1].ColumnWidth   := 14;
    Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Columns[t].ColumnWidth     := 25;
    sheet.cells[u +2, t- 1].Font.Bold                                                     := True;
    sheet.cells[u +2, t- 1].Interior.ColorIndex                                           := 6;
    sheet.cells[u +2, t].Interior.ColorIndex
wie kann ich hier jetzt die linien ansprechen ? weiss das jemand ?
hoffe ich hab mich verständlich ausgedrückt ;)


btw.: wenn wir schon dabeisind : weiss jemand wie ich per quelltext auch angebe wie der inhalt einer zelle ausgegeben wird - sprich links oder rechtsbündig ?

bis dann

mfg stoni

Treffnix 6. Dez 2004 10:56

Re: formatieren einer exceltabelle aus delphi raus
 
Wenn ich mich richtig erinnere kannst du die Linien mit Range.Borders ansprechen. Wie genau die Formatierung abläuft hab ich leider gerade nicht im Kopf.

Die Ausrichtung kannst du mit Range.HorizontalAlignment oder Range.VerticalAlignment ändern. Die Werte sind dann z.B. xlHAAlignLeft ( HA für Horizontal Alignment ) oder xlVAAlignTop( VA wie Vertical Alignment ).

*edit* zu blöd um "vertical" zu schreiben ;) *edit*

stonimahoni 6. Dez 2004 11:04

Re: formatieren einer exceltabelle aus delphi raus
 
hi treffnix

hab grad mal was probiert :
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, 1)].Columns[t-5].xlHAAlignLeft;
aber da bekomm ich fehler beim export weil das automatisierungsobjekt das nicht unterstützen würde ?! :(

ahnung was ich falsch gemacht habe ??

Treffnix 6. Dez 2004 11:16

Re: formatieren einer exceltabelle aus delphi raus
 
Zitat:

Zitat von stonimahoni
hi treffnix

hab grad mal was probiert :
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, 1)].Columns[t-5].xlHAAlignLeft;
aber da bekomm ich fehler beim export weil das automatisierungsobjekt das nicht unterstützen würde ?! :(

ahnung was ich falsch gemacht habe ??

xlHAAlignLeft ist ein Wert, kein Property. Den musst du dem Property HorizontalAlignment zuweisen.

also z.B.
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, 1)].Columns[t-5].HorizontalAlignment := xlHAAlignLeft;

stonimahoni 6. Dez 2004 11:31

Re: formatieren einer exceltabelle aus delphi raus
 
ich depp :wall:

jetzt bekomme ich nur noch einen fehler :
[Fehler] test.pas(168): Undefinierter Bezeichner: 'xlHAAlignLeft'

als was muss ich xlHAAlignLeft definieren ?

Treffnix 6. Dez 2004 11:37

Re: formatieren einer exceltabelle aus delphi raus
 
Entschuldige, hab mich geirrt. Gerade mal nachgeguckt: Der Wert heisst xlHAlignLeft, also ein A weniger. Entsprechend xlHAlignRight für Rechtsbündig usw... Definiert ist er in der Unit Excel<version>

stonimahoni 6. Dez 2004 11:53

Re: formatieren einer exceltabelle aus delphi raus
 
freffnix du bist wahrlich super :)
klappt supi !! :cheers: :hello:

jetzt hab ich nur noch das prob mit den linien ( border )
wo schau ich sowas am besten nach ? in der delphi hilfe find ich net wirklich was oder ich peils nur net :(

wollte dem teil praktisch sagen dass zwischen jeder spalte die linie dick ist und auch rechts und links aussen ( bei den äussersten spalten )
wollte das so gestalten :
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Borders(xlEdgeRight).Weight := xlThick ;
so steht es ungefähr im macro das ich im excel gemacht habe um zu schauen aber hier bekomm ich folgenden fehler :

exception der klasse eolesyserror - member nicht gefunden
wasn das jetzt ? *argh*

Treffnix 6. Dez 2004 12:28

Re: formatieren einer exceltabelle aus delphi raus
 
Hmm...

Wie gesagt: Weiss ich gerade ausm Kopf nicht genau, und find auch gerade keinen Source dazu, aber versuchs doch mal mit eckigen Klammern.

z.B.
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Borders[xlEdgeRight].Weight := xlThick ;
evtl auch

Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Borders.Item[xlEdgeRight].Weight := xlThick ;

stonimahoni 6. Dez 2004 14:05

Re: formatieren einer exceltabelle aus delphi raus
 
tausend dank treffnix !!!

folgendes hat wunderbar geklappt :
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Borders.Item[xlEdgeRight].Weight := xlThick ;

jetzt noch ein kleiens problemchen :
ich fülle meine excel tabelle mit folgendem code :
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, AGrid.ColCount)].Value         := Data;
data habe ich vorher als olevariant deklariert und gefüllt. in der letzten spalte stehen zahlenwerte denen ich gerne noch als anhängsel das "€" zeichen mitgeben würde.
kann ich das irgendwie an das data dranhängen ??
ich hatte es probiert als string mit zu übergeben also := Data +'€'; aber da bekam ich nen fehler

hast du da noch ne kleine idee ?? wäre echt geil

dank dir tausendmal

mfg

stoni

Treffnix 6. Dez 2004 14:18

Re: formatieren einer exceltabelle aus delphi raus
 
Benutz doch das Property Range.Numberformat. Da kannste die Zellformatierung anpassen ohne den Wert zu ändern. Ist quasi das gleiche wie in Excel direkt "Zellen formatieren" und dann Benutzerdefiniert.

du könntest zum Beispiel mal

Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, AGrid.ColCount)].Numberformat := '0,00 €'
versuchen. Evtl. musst du auch statt Komma nen Punkt nehmen. Wenns mit Komma geht, solltest du das über den Decimalseparator definieren, damits auch in anderen Sprachen klappt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz