AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen

Ein Thema von philubb · begonnen am 14. Nov 2012 · letzter Beitrag vom 16. Nov 2012
Antwort Antwort
philubb

Registriert seit: 27. Jun 2012
16 Beiträge
 
Delphi XE Enterprise
 
#1

Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen

  Alt 14. Nov 2012, 10:58
Klingt bestimmt einfach, aber ich verzweifele gerade daran, ein weiteres worksheet in mein excel-dokument einzufügen. Hab auch nirgends eine Lösung gefunden

Delphi-Quellcode:
  Template := EmptyParam;
  FLCID := LOCALE_USER_DEFAULT;

  ExcelAppEDM.Connect;
  ExcelAppEDM.Visible[FLCID] := True;
  ExcelAppEDM.caption := 'Inventarlisten Veränderungen';
  ExcelAppEDM.Workbooks.Add(Template, FLCID);

  ExcelWorksheetSchrott.ConnectTo(ExcelAppEDM.ActiveWorkbook.activeSheet as _Worksheet);
  ExcelWorksheetSchrott.Name := 'Inv. verschrottet';
 
  ExcelWorksheetTeilSchrott.ConnectTo(ExcelAppEDM.ActiveWorkbook.Sheets.Item[2] as _Worksheet);
  ExcelWorksheetTeilSchrott.Name := 'Inv. teil-verschrottet';
  
  ExcelWorksheetVerkauft.ConnectTo(ExcelAppEDM.ActiveWorkbook.Sheets.Item[3] as _Worksheet);
  ExcelWorksheetVerkauft.Name := 'Inv. verkauft';
  
  //hier kommt der Fehler
  ExcelWorksheetKST.ConnectTo(ExcelAppEDM.ActiveWorkbook.Sheets[4] as _Worksheet);
  ExcelWorksheetKST.Name := 'Kst. Änderung';

   ... WorkSheets füllen ...

  ExcelWorksheetSchrott.Disconnect;
  ExcelWorksheetTeilSchrott.Disconnect;
  ExcelWorksheetVerkauft.Disconnect;
  ExcelWorksheetKST.Disconnect;

  ExcelAppEDM.Disconnect;

Mit den ersten drei Aufrufen klappt es. Nur wenn ich das letzte

worksheet hinzufügen möchte, kommt der Fehler "Ungültiger Index"


Befüllen der einzelnen Worksheets kann ich auch. Scheitert echt nur daran, dass ich das letzte nicht noch mit in die Excel-Datei bekomme.

Geändert von philubb (14. Nov 2012 um 11:02 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen

  Alt 14. Nov 2012, 11:10

Delphi-Quellcode:

  //hier kommt der Fehler
  ExcelWorksheetKST.ConnectTo(ExcelAppEDM.ActiveWorkbook.Sheets[4] as _Worksheet);
Das vierte Worksheet existiert noch nicht, mit Sheets[4] wird es nicht erzeugt.

Mit Sheets.Add wird ein neues angelegt, dass danach auch mit Sheets[4] angesprochen werden kann.

Siehe auch:

http://www.delphipraxis.net/37480-ex...rnsteuern.html
Michael Justin
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen

  Alt 14. Nov 2012, 11:54
Alternativ mit
ExcelAppEDM.SheetsInNewWorkbook=4
vor
ExcelAppEDM.Workbooks.Add(Template, FLCID);
dafür sorgen, dass 4 neue Sheets in dem leeren Workbook bereitstehen.
Ralph
  Mit Zitat antworten Zitat
philubb

Registriert seit: 27. Jun 2012
16 Beiträge
 
Delphi XE Enterprise
 
#4

AW: Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen

  Alt 14. Nov 2012, 12:00
Danke.
Jetzt klappt alles



Heißt das, dass von Anfang an immer nur 3 sheets existieren?
Gut zu wissen.

Hab gedacht, dass ist egal, wie viele am Anfang existieren.
  Mit Zitat antworten Zitat
wilbo

Registriert seit: 22. Jun 2012
2 Beiträge
 
#5

AW: Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen

  Alt 14. Nov 2012, 13:33
Hallo philubb

Als echte Alternative wäre FLEXCEL STUDIO con TMS Software geeignet.
Ist einfach zu begreifen und spart zusätzlich auf dem erstellenden Rechner eine Excel Installation (Kosten)

Gruß Wilfried
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen

  Alt 15. Nov 2012, 08:54
Danke.
Heißt das, dass von Anfang an immer nur 3 sheets existieren?
Nein, heisst es nicht. Dieses Verhalten kann man im Optionsdialog von Excel einstellen. Bei mir ist dort standardmäßig nur 1 Sheet eingestellt.
Miniaturansicht angehängter Grafiken
exceloptionen.jpg  
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Kann kein neues Excel-Arbeitsblatt(Worksheet) erstellen/hinzufügen

  Alt 16. Nov 2012, 08:27
Genau. Drei ist aber glaub ich die Einstellung, mit der Excel (früher) installiert wurde. Hättest do wie Gollum diese Einstellung irgendwann mal geändert, so hätte es bei dir schon bei der zweiten Zuweisung geknallt.

Es ist so wie ich das Verstanden habe auch so, dass die im Code gemachte Änderung: "...SheetsInNewWorkbook=4" nur für den Moment gültig ist und nicht die entsprechende Grundeinstellung von Excel ändert.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 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