![]() |
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:
wie kann ich hier jetzt die linien ansprechen ? weiss das jemand ?
// 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 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 |
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* |
Re: formatieren einer exceltabelle aus delphi raus
hi treffnix
hab grad mal was probiert :
Delphi-Quellcode:
aber da bekomm ich fehler beim export weil das automatisierungsobjekt das nicht unterstützen würde ?! :(
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, 1)].Columns[t-5].xlHAAlignLeft;
ahnung was ich falsch gemacht habe ?? |
Re: formatieren einer exceltabelle aus delphi raus
Zitat:
also z.B.
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, 1)].Columns[t-5].HorizontalAlignment := xlHAAlignLeft;
|
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 ? |
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>
|
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:
so steht es ungefähr im macro das ich im excel gemacht habe um zu schauen aber hier bekomm ich folgenden fehler :
Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Borders(xlEdgeRight).Weight := xlThick ;
exception der klasse eolesyserror - member nicht gefunden wasn das jetzt ? *argh* |
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:
evtl auch
Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Borders[xlEdgeRight].Weight := xlThick ;
Delphi-Quellcode:
Sheet.Range[RefToCell(1, 1), RefToCell(1, AGrid.ColCount)].Borders.Item[xlEdgeRight].Weight := xlThick ;
|
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:
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.
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, AGrid.ColCount)].Value := Data;
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 |
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:
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.
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, AGrid.ColCount)].Numberformat := '0,00 €'
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz