![]() |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Hm... Habe es nun geändert auf
Code:
Der Text steht in der betreffenden Zelle und sie ist auch markiert genau wie vorher. Jedoch der Rahmen ist immernoch nicht vorhanden.
EXCEL.ActiveWorkbook.Worksheets['Tabelle1'];
Excel.Cells[2, 1].Value := 'test2'; Excel.range['A2','A2'].value := 'test'; Excel.range['A2','A2'].Select; // Die Zelle A2 Excel.Selection.Borders[xlEdgeLeft].LineStyle := xlDashDot; Excel.Selection.Borders[xlEdgeLeft].ColorIndex := 5; // blau Excel.Selection.Borders[xlEdgeLeft].TintAndShade := 0; Excel.Selection.Borders[xlEdgeLeft].Weight := xlMedium; TExcelApplication hab ich auf meiner Form. Ka aber ohne die gehts ja nicht. Excel Starten:
Delphi-Quellcode:
da kein Arbeitsblatt existiert:
try
Excel := GetActiveOleObject('Excel.Application'); except Excel := CreateOleObject('Excel.Application'); end; Excel.Visible := True;
Delphi-Quellcode:
ist ja auch gleich mien aktives.
Excel.Workbooks.Add(xlWBatWorkSheet);
und zu guter letzt eben die Zelle umranden. |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Hallo Cyberaxx,
versuch mal das hier:
Delphi-Quellcode:
procedure TForm1.btnRahmenZeichnenClick(Sender: TObject);
var OLEvExcel: OleVariant; begin OLEvExcel := CreateOleObject('Excel.Application'); OLEvExcel.Visible:= TRUE; OLEvExcel.Workbooks.add; OLEvExcel.ActiveWorkbook.Worksheets['Tabelle1']; OLEvExcel.Range['A1:L3'].Select; OLEvExcel.Selection.Borders[xlDiagonalDown].LineStyle := xlNone; OLEvExcel.Selection.Borders[xlDiagonalUp].LineStyle := xlNone; OLEvExcel.Selection.Borders[xlEdgeLeft].LineStyle := xlNone; OLEvExcel.Selection.Borders[xlEdgeTop].LineStyle := xlContinuous; OLEvExcel.Selection.Borders[xlEdgeTop].Color := -16777024; OLEvExcel.Selection.Borders[xlEdgeTop].TintAndShade := 0; OLEvExcel.Selection.Borders[xlEdgeTop].Weight := xlThin; ShowMessage('Rahmen in Excel ansehen'); OLEvExcel.ActiveWorkBook.Saved:= TRUE; OLEvExcel.Workbooks.Close; OLEvExcel.Quit; OLEvExcel:= Unassigned; end; Bis bald Chemiker |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Dies klappt leider auch nicht.
Wenn ich das Excel Fenster anklicke sehe ich das Range Select also das die Felder A1-L3 markiert sind aber klicke ich dann eine Zelle ab, sehe ich dort keinen Rahmen. Ich verstehs nicht, warum klappts bei anderen aber bei mir nicht. Office 2007 liegt in der standard Installation vor. In Delphi habe ich nur die Jedies installiert. Habe nun eben auch ein neues Projekt erstellt und nur diesen Source genutzt. Zusätzlich mal die Komponenten von XP auf 2000 in Delphi umgestellt aber es klappt nicht. |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Hallo Cyberaxx,
schaust Du mal im Taskmanger unter Prozesse nach, ob vieleicht noch andere Excel Instanzen laufen die nicht ordentlich geschlossen worden sind. Bis bald Chemiker |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Hallo Cyberaxx,
noch ein Versuch:
Delphi-Quellcode:
Bis bald Chemiker
procedure TForm1.btnRahmenZeichnenClick(Sender: TObject);
var OLEvExcel: OleVariant; begin OLEvExcel := CreateOleObject('Excel.Application'); OLEvExcel.Visible:= TRUE; OLEvExcel.Workbooks.add; OLEvExcel.ActiveWorkbook.Worksheets['Tabelle1']; OLEvExcel.Range['A1:L3'].Select; olevEXCEL.Selection.Borders[xlDiagonalDown].LineStyle := xlNone; olevEXCEL.Selection.Borders[xlDiagonalUp].LineStyle := xlNone; olevEXCEL.Selection.Borders[xlEdgeLeft].LineStyle := xlDashDot;//xlContinuous; olevEXCEL.Selection.Borders[xlEdgeLeft].Color := clred;//xlAutomatic; olevEXCEL.Selection.Borders[xlEdgeLeft].TintAndShade := 0; olevEXCEL.Selection.Borders[xlEdgeLeft].Weight := xlMedium; //xlThick; olevEXCEL.Selection.Borders[xlEdgeTop].LineStyle := xlDashDot;// xlContinuous; olevEXCEL.Selection.Borders[xlEdgeTop].Color := clred;//xlAutomatic; olevEXCEL.Selection.Borders[xlEdgeTop].TintAndShade := 0; olevEXCEL.Selection.Borders[xlEdgeTop].Weight := xlMedium; //xlThick; olevEXCEL.Selection.Borders[xlEdgeBottom].LineStyle := xlDashDot;// xlContinuous; olevEXCEL.Selection.Borders[xlEdgeBottom].Color := clred;//xlAutomatic; olevEXCEL.Selection.Borders[xlEdgeBottom].TintAndShade := 0; olevEXCEL.Selection.Borders[xlEdgeBottom].Weight := xlMedium; //xlThick; olevEXCEL.Selection.Borders[xlEdgeRight].LineStyle := xlDashDot;// xlContinuous; olevEXCEL.Selection.Borders[xlEdgeRight].Color := clred;//xlAutomatic; olevEXCEL.Selection.Borders[xlEdgeRight].TintAndShade := 0; olevEXCEL.Selection.Borders[xlEdgeRight].Weight := xlMedium; //xlThick; ShowMessage('Rahmen in Excel ansehen'); OLEvExcel.ActiveWorkBook.Saved:= TRUE; OLEvExcel.Workbooks.Close; OLEvExcel.Quit; OLEvExcel:= Unassigned; end; |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Also ich weiß nun nicht was ich sagen soll, sicher werden einige nun lachen und ich nun erstmal in die Ecke.
Mein Originalbeispiel bezog sich nur auf die oberste Linie, diese ist nicht zu erkennen. Habe mal die Range geändert und siehe da sie wird sichtbar. Somit gehe ich nun mal in die Ecke... schämen... @Chemiker: Sry das Du Dich so bemüht hast. Aber durch Dein letztes Beispiel wurde es mir dann doch mal klar. Dies funktionierte direkt, auch wenn ich da wiederum in der Spalte 1 die obere Linie nicht sehe. Den Rest dagegen schon :) Danke |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Hallo Cyberaxx,
gut das es jetzt funktioniert. Mir gingen langsam die Ideen aus. Bis bald Chemiker |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Ich bin Froh das es nur ein Verständnisproblem meiner Seite war. :)
Habe da aber noch eine kleine Frage und zwar nur nach der Möglichkeit ein Arbeitsblatt auszulesen. Also Abfragen wie, wie viele Blätter vorhanden sind. Wie viele Spalten und Zeilen vorhanden sind. Möchte also nur erstmal gerne wissen ob dies möglich ist, denn darüber habe ich bisher nichts gelesen ausser das man eben den Inhalt einer bestimmten zelle abfragen könnte. Gruß Daniel |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Mal zu deinen Fragen die Antwort in VBA. Delphi Übersetzung überlass ich dir:
Sagen wir Excel ist die variable deiner Excel-Application, dann liefert:
Code:
die Anzahl der offenen Workbooks (=Dateien).
Excel.Workbooks.Count
Für ein Workbook (z.B. das Aktive) liefert:
Code:
oder war es
Excel.ActiveWorkbook.Worksheets.Count
Code:
die Anzahl der Arbeitsblätter.
Excel.ActiveWorkbook.Sheets.Count
Für ein Arbeitsblatt, z.B. das letzte, liefert:
Code:
den gefüllten Bereich und
Dim r as Range
Set r = Excel.ActiveWorkbook.Worksheets[Excel.ActiveWorkbook.Worksheets.Count].UsedRange
Code:
die Spalten und Zeilen dieses Bereichs.
r.Columns.Count
r.Rows.Count |
AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
Ahh Danke
Das bringt mich doch schon ein wenig weiter :) Danke für die Antwort. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 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