Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme (https://www.delphipraxis.net/164368-delphi-2010-professional-excel-2007-typelibrary-probleme.html)

Cyberaxx 9. Nov 2011 19:16

Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo

Ich würde gerne Excel automatisieren, jedoch scheitere ich schon bei dem Import der TypeLibrary.
Egal wie ich versuche die Microsoft Excel 12.0 Object Library zu installiere, scheitere ich.

Folgende meldungen bekomme ich. Zusammengekürzt auf die Fehler, Zeilentechnisch sind es schon mehr.
Zitat:

[DCC Fehler] Excel_TLB.pas(4921): E2003 Undeklarierter Bezeichner: 'MsoThemeColorIndex'
[DCC Fehler] Excel_TLB.pas(4922): E2005 'MsoThemeColorIndex' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5189): E2003 Undeklarierter Bezeichner: 'MsoShadowStyle'
[DCC Fehler] Excel_TLB.pas(5190): E2005 'MsoShadowStyle' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5343): E2003 Undeklarierter Bezeichner: 'MsoPresetCamera'
[DCC Fehler] Excel_TLB.pas(5347): E2003 Undeklarierter Bezeichner: 'MsoLightRigType'
[DCC Fehler] Excel_TLB.pas(5348): E2005 'MsoLightRigType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5351): E2003 Undeklarierter Bezeichner: 'MsoBevelType'
[DCC Fehler] Excel_TLB.pas(5352): E2005 'MsoBevelType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5363): E2005 'MsoPresetCamera' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5388): E2005 'MsoLightRigType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5390): E2005 'MsoBevelType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5430): E2005 'MsoPresetCamera' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5434): E2005 'MsoLightRigType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5436): E2005 'MsoBevelType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5442): E2005 'MsoPresetCamera' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5489): E2003 Undeklarierter Bezeichner: 'GradientStops'
[DCC Fehler] Excel_TLB.pas(5494): E2003 Undeklarierter Bezeichner: 'MsoTextureAlignment'
[DCC Fehler] Excel_TLB.pas(5495): E2005 'MsoTextureAlignment' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5519): E2005 'GradientStops' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5522): E2005 'MsoTextureAlignment' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5561): E2005 'GradientStops' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5564): E2005 'MsoTextureAlignment' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5615): E2003 Undeklarierter Bezeichner: 'MsoDiagramNodeType'
[DCC Fehler] Excel_TLB.pas(5637): E2005 'MsoDiagramNodeType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5654): E2003 Undeklarierter Bezeichner: 'MsoRelativeNodePosition'
[DCC Fehler] Excel_TLB.pas(5654): E2005 'MsoDiagramNodeType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5656): E2005 'MsoRelativeNodePosition' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5668): E2003 Undeklarierter Bezeichner: 'IMsoDiagram'
[DCC Fehler] Excel_TLB.pas(5669): E2003 Undeklarierter Bezeichner: 'MsoOrgChartLayoutType'
[DCC Fehler] Excel_TLB.pas(5670): E2005 'MsoOrgChartLayoutType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5676): E2005 'IMsoDiagram' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5677): E2005 'MsoOrgChartLayoutType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5688): E2005 'MsoRelativeNodePosition' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5688): E2005 'MsoDiagramNodeType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5690): E2005 'MsoRelativeNodePosition' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5702): E2005 'IMsoDiagram' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5703): E2005 'MsoOrgChartLayoutType' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5788): E2003 Undeklarierter Bezeichner: 'MsoPathFormat'
[DCC Fehler] Excel_TLB.pas(5789): E2005 'MsoPathFormat' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5790): E2003 Undeklarierter Bezeichner: 'MsoWarpFormat'
[DCC Fehler] Excel_TLB.pas(5791): E2005 'MsoWarpFormat' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5796): E2003 Undeklarierter Bezeichner: 'MsoAutoSize'
[DCC Fehler] Excel_TLB.pas(5797): E2005 'MsoAutoSize' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5800): E2003 Undeklarierter Bezeichner: 'TextRange2'
[DCC Fehler] Excel_TLB.pas(5801): E2003 Undeklarierter Bezeichner: 'TextColumn2'
[DCC Fehler] Excel_TLB.pas(5802): E2003 Undeklarierter Bezeichner: 'Ruler2'
[DCC Fehler] Excel_TLB.pas(5813): E2005 'MsoWarpFormat' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5816): E2005 'MsoAutoSize' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5819): E2005 'TextRange2' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5820): E2005 'TextColumn2' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5821): E2005 'Ruler2' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5839): E2005 'MsoPathFormat' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5840): E2005 'MsoWarpFormat' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5843): E2005 'MsoAutoSize' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5846): E2005 'TextRange2' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5847): E2005 'TextColumn2' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(5848): E2005 'Ruler2' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(6077): E2003 Undeklarierter Bezeichner: 'MsoSyncEventType'
[DCC Fehler] Excel_TLB.pas(6495): E2003 Undeklarierter Bezeichner: 'MsoAutomationSecurity'
[DCC Fehler] Excel_TLB.pas(6496): E2005 'MsoAutomationSecurity' ist kein gültiger Typenbezeichner
[DCC Fehler] Excel_TLB.pas(6497): E2003 Undeklarierter Bezeichner: 'MsoFileDialogType'
[DCC Fehler] Excel_TLB.pas(6497): E2003 Undeklarierter Bezeichner: 'FileDialog'
[DCC Fehler] Excel_TLB.pas(6514): E2003 Undeklarierter Bezeichner: 'NewFile'
[DCC Fehler] Excel_TLB.pas(6557): E2003 Undeklarierter Bezeichner: 'IAssistance'
[DCC Fataler Fehler] Excel_TLB.pas(6745): E2226 Die Compilierung wurde wegen zu vieler Fehler abgebrochen
Installieren kann ich nur diese Library. Eine andere wird mir nicht zur Verfügung gestellt.


Delphi 2010 Professional
Microsoft Office 2007 Home and Student

Vorgegangen bin ich wie folgt:
Komponente / Komponente Importieren / Typenbibliothek / Microsoft Excel 12 ...
Klassennamen nicht verändert. Palettenseite: (none)
Rest ebenfalls so gelassen wie vorgegeben.
Habe es einmal mit Komponenten Wrapper versucht und einmal ohne.

Könnte mir hierbei jemand helfen?

Gruß
Daniel

madtom 9. Nov 2011 20:50

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo,

Du brauchst nicht die Typbibliothek für Office 2007 importieren.
Die Office XP Komponenten sind eigentlich schon mitinstalliert,
gegebenfalls mußt Du unter Packages noch einen Haken setzen.

Cyberaxx 9. Nov 2011 22:14

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Ahh. Diese sind unter Beispiele geführt.
Die XP Komponenten sind aber auch 2007 kompatibel?

Beantwortet hat dies, auch wenn es nun vermutlich geht, die eigentliche Frage. Es müsste doch möglich sein dies über die TypenBibliothek gehen.

Muss es morgen mal testen. Habe hier keine IDE und kein Excel drauf.

Danke schon einmal für die schnelle Antwort

madtom 10. Nov 2011 06:15

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo,

die Office-XP Komponenten funktionieren. Das ist das Gute an COM (OLE), einmal eingeführte Schnittstellen (Interfaces) funktionieren auch in späteren Office Versionen, für neuere Funktionalitäten werden dann neue Intefaces "aufgemacht", allerdings habe ich noch keine Funktionalitäten vermisst (allerdings beschränken sich meine Versuche aufs Austesten, was so geht). Es kann sein, falls Du schon "vorgefertigte" Codeschnipsel von irgendwo hast, das die Anzahl der Parameter, die deine Delphiversion verlangt, von deinem Schnipsel abweicht, meistens helfen dann ein paar "EmptyParam" zusätzlich schon weiter. Für die Suche im Internet wären "Deborah Pate (TeamB)" oder "Binh Ly" gute Anlaufpunkte, viele der gängigen "How to ..." in Bezug auf Office sind ursprünglich von ihnen, egal wer jetzt seinen Namen darunterschreibt :).

Gruß Thomas

Cyberaxx 10. Nov 2011 21:16

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Danke, ich werds mal ausprobieren.

Ich brauche es nicht für sehr umfangreiche dinge, zumindest bis jetzt...

Es soll einfach eine Preisliste aus MySQL ans Excel übergeben werden, natürlich mit ein paar Formatierungen, Hintergrundfarbe, Textfarbe, Zellen -höhe/-breite. Vielleicht auch mal eine kleine Formel düe übergeben wird.

Das ganze ist ein Test, ob das mit Delphi und ein wenig Automatisierung besser klappt als es zu Fuß zu machen. Hierbei dürfen die Breite des Dokumentes nicht überschritten werden und die Länge ebenfalls nicht Dann muss eine neue "Seite" her.

Gruß
Daniel

madtom 11. Nov 2011 16:59

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo,

ich habe selbst einmal für ein Projekt den Report mit Word erstellt inklusive Kopf und Fußzeile, Seitenzahlen etc.
Falls Du einen Ansatz brauchst, wie dies oder das mit Delphi zu lösen ist, nutze in Word die Macrofunktion, zeichne die Arbeitschritte auf, die Du normalerweise in Word machen würdest und den von Word erzeugten VBA Code kannst Du zu großen Teilen (mit kleinen Delphi spezifischen Änderungen) in Dein Projekt übernehmen.

Gruß

Thomas

Cyberaxx 11. Nov 2011 20:19

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo

Ich habs nun am Laufen. Durch mehrere Seiten habe ich nun auch einiges abgedeckt in einer kleinen Demo App.
Was aber noch Fehlt sind Methoden um den Zellenrahmen zu entfernen, Rahmenteile definieren und in dem Quelltext den ich bisher habe, kann ich auch nur rahmenstärke von 1-4 setzen aber in Excel ansich gibts ja noch mehr, mit Punkten z.B. natürich noch die Methoden wie Rahmenfarbe.

Wo kann ich die Doku finden, was alles möglich ist und welche Werte ich einsetzen muss?

z.B. sowas:
Delphi-Quellcode:
  // SheetType
  xlChart = -4109;
  xlWorksheet = -4167;
  // WBATemplate
  xlWBATWorksheet = -4167;
  xlWBATChart = -4109;
  // Page Setup
  xlPortrait = 1;
  xlLandscape = 2;
  xlPaperA4 = 9;
  // Format Cells
  xlBottom = -4107;
  xlLeft = -4131;
  xlRight = -4152;
  xlTop = -4160;
  // Text Alignment
  xlHAlignCenter = -4108;
  xlVAlignCenter = -4108;
  // Cell Borders
  xlThick = 4;
  xlThin = 2;

Chemiker 12. Nov 2011 01:15

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo Cyberaxx,

die Doku ist die Hilfe von VBA in Excel, wie madtom schon geschrieben hat, kommt man am besten zum Ziel, wenn man sich einen Macro aufzeichnet und diesen dann in Delphi nachbildet.

Delphi-Quellcode:
olevEXCEL.range['A2','A2'].Select; // Die Zelle A2 
  olevEXCEL.Selection.Borders[xlEdgeLeft].LineStyle := xlDashDot;
  olevEXCEL.Selection.Borders[xlEdgeLeft].ColorIndex := 5; // blau
  olevEXCEL.Selection.Borders[xlEdgeLeft].TintAndShade := 0;
  olevEXCEL.Selection.Borders[xlEdgeLeft].Weight := xlMedium;
Damit wird die Zelle A2 markiert und auf der linken Seite mit einem blauen Rahmen versehen.

Bis bald Chemiker

Cyberaxx 13. Nov 2011 15:41

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo

Weder das eine noch das andere mag mein Excel 2007

Die Zelle A2 wird zwar selektiert aber es kommt kein Rahmen.

Wenn ich den Makro Recorder benutze sieht es genau so aus. Egal was ich nutze es taucht nicht in Excel auf.

Code:
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Color = -16777024
        .TintAndShade = 0
        .Weight = xlThin
    End With
Delphi-Quellcode:
  Excel.Range['A1:L3'].Select;
  Excel.Selection.Borders[xlDiagonalDown].LineStyle := xlNone;
  Excel.Selection.Borders[xlDiagonalUp].LineStyle := xlNone;
  Excel.Selection.Borders[xlEdgeLeft].LineStyle := xlNone;

  Excel.Selection.Borders[xlEdgeTop].LineStyle := xlContinuous;
  Excel.Selection.Borders[xlEdgeTop].Color := -16777024;
  Excel.Selection.Borders[xlEdgeTop].TintAndShade := 0;
  Excel.Selection.Borders[xlEdgeTop].Weight := xlThin;
Hier passiert ebenfalls nichts weiter als der Range selekt.

// http://www.swissdelphicenter.ch/de/showcode.php?id=156

Das hier hingegen funktioniert ohne Probleme es deckt nur leider nicht alles ab was ich benötige.
Wo steckt hier nur der Fehler?

Chemiker 13. Nov 2011 18:17

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo Cyberaxx,

als bei mir funktioniert Dein Quellcode. Vielleicht ist das Worksheet nicht aktiviert.

Delphi-Quellcode:
olevEXCEL.ActiveWorkbook.Worksheets['Tabelle1'];
olevEXCEL.range['A2','B2'].Select;
...
...
Bis bald Chemiker

Cyberaxx 13. Nov 2011 18:27

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hm... Habe es nun geändert auf

Code:
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;
Der Text steht in der betreffenden Zelle und sie ist auch markiert genau wie vorher. Jedoch der Rahmen ist immernoch nicht vorhanden.

TExcelApplication hab ich auf meiner Form. Ka aber ohne die gehts ja nicht.

Excel Starten:
Delphi-Quellcode:
    try
      Excel := GetActiveOleObject('Excel.Application');
    except
      Excel := CreateOleObject('Excel.Application');
    end;
    Excel.Visible := True;
da kein Arbeitsblatt existiert:
Delphi-Quellcode:
Excel.Workbooks.Add(xlWBatWorkSheet);
ist ja auch gleich mien aktives.

und zu guter letzt eben die Zelle umranden.

Chemiker 13. Nov 2011 18:38

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

Cyberaxx 13. Nov 2011 18:50

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.

Chemiker 13. Nov 2011 18:55

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

Chemiker 13. Nov 2011 19:00

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo Cyberaxx,
noch ein Versuch:
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 := 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;
Bis bald Chemiker

Cyberaxx 13. Nov 2011 19:39

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

Chemiker 13. Nov 2011 20:57

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Hallo Cyberaxx,

gut das es jetzt funktioniert. Mir gingen langsam die Ideen aus.

Bis bald Chemiker

Cyberaxx 14. Nov 2011 07:10

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

Jumpy 14. Nov 2011 09:24

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:
Excel.Workbooks.Count
die Anzahl der offenen Workbooks (=Dateien).

Für ein Workbook (z.B. das Aktive) liefert:
Code:
Excel.ActiveWorkbook.Worksheets.Count
oder war es
Code:
Excel.ActiveWorkbook.Sheets.Count
die Anzahl der Arbeitsblätter.

Für ein Arbeitsblatt, z.B. das letzte, liefert:
Code:
Dim r as Range
Set r = Excel.ActiveWorkbook.Worksheets[Excel.ActiveWorkbook.Worksheets.Count].UsedRange
den gefüllten Bereich und
Code:
r.Columns.Count
r.Rows.Count
die Spalten und Zeilen dieses Bereichs.

Cyberaxx 17. Nov 2011 20:32

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Ahh Danke

Das bringt mich doch schon ein wenig weiter :)

Danke für die Antwort.

Cyberaxx 2. Feb 2012 13:40

AW: Delphi 2010 Professional & Excel 2007 TypeLibrary Probleme
 
Ich bin doch tatsächlich noch einmal da.
Es ist natürlich auch das selbe Thema...

Mittels:
Delphi-Quellcode:
procedure Excel_AddNameReferer(Value: string; Range: string);
var
  CurrSheetName: string;
begin
  CurrSheetName := Excel.ActiveSheet.Name;
  Excel.ActiveWorkbook.Names.Add(Value, '=' + CurrSheetName + '!' + Range);
end;
Setze ist Einen Namen für ein Feld bzw einen Bereich.
Jetzt möchte ich das ganze gerne auch umgekehrt nutzen, also die Referenz wieder entfernen.

In VBA Script schaut das dann so aus.
Code:
ActiveWorkbook.Names("Testsheet").Delete
In Delphi dann bei mir so
Delphi-Quellcode:
Excel.ActiveWorkBook.Names[Value].Delete();
mit (Value) hab ich es auch schon probiert, die Fehlermeldung lautet immer:

Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EOleSysError mit der Meldung 'Mitglied nicht gefunden' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Wo liegt da der Fehler? Im netz bin ich da bisher nicht fündig geworden ausser das man Referenzen Anlegen kann oder sich das VBA zu nutze zu machen. Aber genau diese Methode funktioniert nicht...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.

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