AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Excel OLE - Problem nach Speichern

Ein Thema von SearchBot · begonnen am 4. Dez 2016 · letzter Beitrag vom 7. Dez 2016
Antwort Antwort
kompi

Registriert seit: 27. Apr 2012
Ort: Duisburg
56 Beiträge
 
Delphi 12 Athens
 
#1

AW: Excel OLE - Problem nach Speichern

  Alt 5. Dez 2016, 18:54
Ich hatte dieses Problem auch schon mal in einer Anwendung. Diese Namenskonflikte tauchen immer dann auf, wenn man Excel - Dateien in dem neuen Dateiformat (ab Excel 2007) öffnen will.

Die Lösung besteht darin, statt Workbooks.open Workbooks.openxml zu verwenden. Dann sollte der Spuk vorbei sein.

Mit Workbooks.openxml lassen sich eben nicht nur XML Dateien öffnen, sondern auch die Excel Dateien im neueren Format.

Ich habe dies jedoch bisher nur mit Excel 2010 ausprobieren können.

Gruß
Kompi
Detlef Schmitz
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
326 Beiträge
 
Delphi 12 Athens
 
#2

AW: Excel OLE - Problem nach Speichern

  Alt 6. Dez 2016, 00:22
Hat das was mit Localisation zu tun, dann lass das doch mal weg, ...
Ich nutze die Komponente, da kann ich keine Parameter weglassen.
Für LCID bekomme ich auf dem verwendeten System 1031. Wenn ich wüsste, was das Excel für eine Lokalisierung benötigt, nähme ich den gleichen Wert und gut?

Die Lösung besteht darin, statt Workbooks.open Workbooks.openxml zu verwenden. Dann sollte der Spuk vorbei sein.
Die Komponente hat nur .open und .opentext

Ganz entfernt war da mal was.
Versuch doch mal das Abspeichern mit
 excel.ActiveWorkbook.SaveAs(Filename:=excfile,FileFormat:=$38 {xlExcel8});
Die Komponente erlaut dieses Format nicht.

Ich glaube langsam, ich sollte die Komponente in die Tonne treten..!? Ihr macht das alle ohne das Ding?
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Excel OLE - Problem nach Speichern

  Alt 6. Dez 2016, 01:14
Hallo SearchBot,

bei EXCEL 2013 hast Du bei Workbooks.Open 15 Parameter. In Deinen Code sind es aber nur 13 Parameter.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
326 Beiträge
 
Delphi 12 Athens
 
#4

AW: Excel OLE - Problem nach Speichern

  Alt 6. Dez 2016, 02:25
Hallo SearchBot,

bei EXCEL 2013 hast Du bei Workbooks.Open 15 Parameter. In Deinen Code sind es aber nur 13 Parameter.

Bis bald Chemiker
Die Komponente, die bei Berlin 10.1 dabei ist, beruht wohl auf Excel2000 und nimmt nicht mehr Parameter.

Ich habe mir jetzt einen Bugfix gebastelt, indem ich "einfach so frech bin" und vor dem Speichern in meinem Programm die von Excel fälschlich angelegten Namen lösche

Danach habe ich keinen Namenskonflikt mehr, weil beim erneuten Öffnen Excel zwar wieder die Namen anlegt, die ich aber danach einfach wieder lösche
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Excel OLE - Problem nach Speichern

  Alt 6. Dez 2016, 21:06
Hallo SearchBot,

es werden doch 2 Komponenten-Arten angeboten, wenn Du statt „MS Office 2000 Beispiele für gekapselte Komponenten für Automatisierungsserver“ den „MS Office XP …“ wählst sollte auch Workbooks.Open mit den richtigen Parametern arbeiten.
Und wenn man ganz unabhängig von der EXCEL-Version arbeitet, sollte man statt der späten Bindung die frühe Bindung benutzen.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Jumpy

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

AW: Excel OLE - Problem nach Speichern

  Alt 7. Dez 2016, 10:33
Und wenn man ganz unabhängig von der EXCEL-Version arbeitet, sollte man statt der späten Bindung die frühe Bindung benutzen.
Wahrscheinlich richtig jedacht aber falesch jesacht, um et mal Rheinländisch zu formulieren.
Sprich
- LateBinding:
Excel Version egal, dafür keine IDE-Unterstützung (Intellisense oder wie das heißt), angeblich lansamer, man muss mehr selber machen, ist aber robuster (mMn).
- EarlyBinding: Typbibliothek bekannt, bezieht sich meist auf eine konkrete Execl-Version, daher etwas unflexibler (wie hier), schneller?, IDE kann helfen.

Ich kenn mich mit Excel recht gut aus und brauch kein Intellesense usw. deswegen nehm ich das LateBinding, gerade weil mir so die Excel-Version egal sein kann (solange ich was mache was alle Versionen können) bzw. ich über ExcelApp.Version ja auch je nach Version anders reagieren kann.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Excel OLE - Problem nach Speichern

  Alt 6. Dez 2016, 23:52
Ich glaube langsam, ich sollte die Komponente in die Tonne treten..!? Ihr macht das alle ohne das Ding?
OLE und gut ist. Hier gibt es Dutzende von Beispielen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 05:16 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 by Thomas Breitkreuz