AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Excel Series.Value Zuweisung funktioniert mit Office 365 nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

Ein Thema von Nekromus · begonnen am 3. Jun 2019 · letzter Beitrag vom 14. Jun 2019
Antwort Antwort
Seite 1 von 2  1 2      
Nekromus

Registriert seit: 21. Aug 2017
22 Beiträge
 
#1

Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 3. Jun 2019, 14:35
Liebe Community,

Ich habe folgendes Problem:
mit der Verwendung von Office 365 funktioniert mein Code nicht mehr. Mit Excel 2010 funktioniert alles einwandfrei.
Das Problem habe ich bereits identifiziert. Die Series mit den XValues und den Values ist leer bei Verwendung von Office365.
Delphi-Quellcode:
  pts:= ser.Points(EmptyParam) as Points;
          überwachungsvariable:=pts.Count; //= 0 Keine Werte in der Series
          pt:= pts.Item(pts.Count); // Hier knallt es


Die Zuweisung der Werte geschieht in den Zeilen 550 – 575 bei den Funktionen ExcelRangetoString.
Delphi-Quellcode:
function TDoExportForm.ExcelRangeToString(worksheet_name: WideString;
  rng: ExcelRange): WideString;
var
  s: WideString;
begin
  if worksheet_name <> 'then s:= QuotedStr(worksheet_name) + '!'
  else s:= '';

  Result:= '=' + s + rng.AddressLocal[false, false, xlA1, False, EmptyParam];
end;


function TDoExportForm.ExcelRangeToString(_ws: _Worksheet; cell1,
  cell2: OleVariant): WideString;
begin
  Result:= ExcelRangeToString(_ws.Name, _ws.Range[cell1, cell2]);
 end;
Das Result ist im Screenshot dargestellt:

Hat sich etwas in Office365 geändert?

Weitere Zuweisungen habe ich in den Zeilen 1089 ff probiert:
Delphi-Quellcode:
  ser.XValues:= '="DATA1(IGV=0°)"!D3:D62"'; // OLE Fehler
          ser.XValues:= '="DATA1(IGV=0°)"!R[-3]C[-3]:R[-62]C[-3]"'; // OLE Fehler
          ser.XValues:= '="DATA1(IGV=0°)"!R3C3:R62C3"'; // OLE Fehler

          ser.Values:=rng; //Mitglied nicht gefunden
Keine Variante funktioniert. Die .tlb habe ich nicht verändert. Die komplette .pas ist im Anhang.

Hat jemand eine Idee??

Liebe Grüße und Danke
Tom
Angehängte Grafiken
Dateityp: jpg ScreenshotExcelRangeToString.jpg (89,1 KB, 16x aufgerufen)
Angehängte Dateien
Dateityp: pas frmDoExport.pas (52,4 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.114 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 3. Jun 2019, 14:50
Ich tue mich jetzt schwer mich durch eine 1700 Zeilen schwere Unit zu wühlen. Hast du kein Minimalbeispiel dass man nachstellen kann ohne Excel-Profi zu sein?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 3. Jun 2019, 15:09
Hallo,
zumindestens hier steht ein Unterschied

https://stackoverflow.com/questions/...nd-office-2013

Da musst Du dich wohl mit "try and error" durchhangeln ...
Probier das doch mal als Macro in den beiden Words und finde (hoffentlich) die Unterschiede.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 3. Jun 2019, 22:29
Hallo,

Du benutzt die „frühe Bindung“ um Excel zu steuern. Der Vorteil ist die Geschwindigkeit, dass bei der Deklaration automatisch IntelliSense zur Verfügung steht. Der Nachteil bei der frühen Bindung ist oftmals das die frühe Bindung an einer bestimmten Excel-Version gebunden ist.
Der große Vorteil bei Verwendung von der „späten Bindung“ besteht hauptsächlich darin, dass unabhängig von der Excel-Version gearbeitet werden kann, allerdings sollte man sich mit Objekten, Methoden und Eigenschaften von Excel vertraut machen.
Wenn Du also Excel – Version unabhängig arbeiten wills, solltest Du Deine Unit auf „späte Bindung“ umstellen.

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

Registriert seit: 21. Aug 2017
22 Beiträge
 
#5

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 4. Jun 2019, 08:06
Hallo hoika,

die Makroaufzeichnung habe ich mal als Screenshot angehängt. Da gibt es keine Unterschiede. Mein Screenshot von RangeToString stimmt ja überein (in Delphi).

@Chemiker,

hast du ein Tutorial zur späten Bindung für mich?

Lieben Dank
Angehängte Grafiken
Dateityp: png MakroAufzeichnung.PNG (5,2 KB, 14x aufgerufen)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 4. Jun 2019, 08:29
Hallo,
wo setzt du deine Variable ser?

PS:
Ich habe auch keine Lust, die 1.000 Zeilen zu durchgehen.
Heiko
  Mit Zitat antworten Zitat
Jumpy

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

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 4. Jun 2019, 12:15
Weitere Zuweisungen habe ich in den Zeilen 1089 ff probiert:
Delphi-Quellcode:
  ser.XValues:= '="DATA1(IGV=0°)"!D3:D62"'; // OLE Fehler
          ser.XValues:= '="DATA1(IGV=0°)"!R[-3]C[-3]:R[-62]C[-3]"'; // OLE Fehler
          ser.XValues:= '="DATA1(IGV=0°)"!R3C3:R62C3"'; // OLE Fehler

          ser.Values:=rng; //Mitglied nicht gefunden
Tut vllt. nichts zur Sache, aber in den manuellen Versuchen wundert es mich, dass du da 3 Gänsefüßchen drin hast. Vor allem das mittlere wundert mich da jetzt.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 4. Jun 2019, 21:15

Tut vllt. nichts zur Sache, aber in den manuellen Versuchen wundert es mich, dass du da 3 Gänsefüßchen drin hast. Vor allem das mittlere wundert mich da jetzt.
Das ist aber sehr vorsichtig ausgedrückt. Die Macro-Aufzeichnung liefert etwas ganz anderes, als in der Delphi-Source steht.

Delphi-Quellcode:
  ser.XValues:= '"DATA1(IGV=0°)"!D3:D62'; // OLE Fehler
  ser.XValues:= '"DATA1(IGV=0°)"!R[-3]C[-3]:R[-62]C[-3]'; // OLE Fehler
  ser.XValues:= '"DATA1(IGV=0°)"!R3C3:R62C3'; // OLE Fehler
So geht's vllt. besser.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 ( 4. Jun 2019 um 21:25 Uhr)
  Mit Zitat antworten Zitat
Nekromus

Registriert seit: 21. Aug 2017
22 Beiträge
 
#9

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 5. Jun 2019, 15:30
Das bringt bei mir leider auch einen OLE-Fehler :/
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 5. Jun 2019, 15:46
Hallo,
nimm doch mal einen einfacheren Ausdruck zum Testen.
Oder sogar mal VarArrayOf(1.0,2.0,3.0).
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:07 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