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
Nekromus

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

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

  Alt 12. Jun 2019, 13:58
Delphi-Quellcode:
unit TestSpäteBindung;

interface

uses Variants, ComObj,Excel2010,Dialogs,Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms;

procedure ExcelFuellen;

implementation

procedure ExcelFuellen;
var
  Excel : Variant;
  row, column,I: Integer;
  WBk, WS, SheetName: OleVariant;
  Diagramm1: OleVariant;
  serie : OleVariant;
begin
    try
      Excel := GetActiveOleObject('Excel.Application');
    except
      Excel := CreateOleObject('Excel.Application');
    end;

  excel.Application.SheetsInNewWorkBook := 8; //Die 8 is die Anzahl der Sheets
  Excel.Workbooks.Add;

  Excel.Sheets[1].Name := 'DP Sheet'; //Hierbei ist 1 das erste Sheet 2 das zweite usw.
  //von nun an können wir unser Sheet auch über den gegebenen Namen ansprechen! zB:
  Excel.Sheets['DP Sheet'];

  row := 1;
  column := 2;
  Excel.Sheets['DP Sheet'].Cells[row,column].Value := 'Hallo';
  Excel.Sheets['DP Sheet'].Cells[1,3].value := 5.23; //Da Value vom Typ Variant is können wir hier fast alles reinschreiben

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,3].value := I;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,4].value := I+30;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,5].value := I+50;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,6].value := I+80;
  end;

  Excel.Range['A1:B4'].Select; //Den Bereich A1 bis B4 makieren
  Excel.Selection.Font.Bold := true;//und im Makierten Bereich die Schriftdicke ändern

  Excel.Cells[row,column].select;
  Excel.ActiveCell.FormulaR1C1 := '=R2C1+R3C1'; // Rechnet A2 + A3

  //Excel.Sheets['DP Sheet'].Range['A5', 'A5'].Value := 'The meaning of life, the universe, and everything, is';
  //Excel.Sheets['DP Sheet'].Range['B5', 'B5'].Value := 42;

  Excel.Charts.Add;

  Excel.ActiveChart.ChartType:= xlColumnClustered;
  Excel.ActiveChart.Location (Where:= xlLocationAsObject, Name:= 'DP Sheet');
  Excel.ActiveChart.HasTitle := True;
  Excel.ActiveChart.ChartTitle.Characters.Text := 'Reisezeiten';
  Excel.ActiveChart.Axes(xlCategory, xlPrimary).HasTitle := True;
  Excel.ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text := 'Uhrzeit';
  Excel.ActiveChart.Axes(xlValue, xlPrimary).HasTitle := True;
  Excel.ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text := 'Dauer in sec';

  serie := Excel.ActiveChart.SeriesCollection.NewSeries;
    //serie.XValues := '=''Sued_Ost''!Z3S10:Z3'+'S10';
    //serie.Values := '=''Sued_Ost''!Z4S10:Z4'+'S10';

    serie.XValues := '=''Sued_Ost''!C3:C10';
    serie.Values := '=''Sued_Ost''!D3:D10';

  Excel.Visible := true;
  Excel := unassigned;
end;

end.
Ich versuche es gerade mal in später Bindung:

Komischerweise werden immer alle Datenreihen geplottet. Die Werte in der Serie haben gar keinen Einfluss auf das Diagramm.?

Geändert von Nekromus (12. Jun 2019 um 14:29 Uhr)
  Mit Zitat antworten Zitat
Nekromus

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

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

  Alt 13. Jun 2019, 07:53
Bitte entschuldigt den 'Spam'.

Das 'Sued_Ost' musste ich natürlich durch den richtigen Worksheet Namen ersetzen. Jetzt habe ich das Problem, dass das Diagramm trotzdem alle Daten aus

Delphi-Quellcode:
  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,3].value := I;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,4].value := I+30;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,5].value := I+50;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,6].value := I+80;
  end;
automatisch ins Diagramm nimmt. Warum?
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#3

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

  Alt 13. Jun 2019, 08:28
Weil das Chart in Excel einen Bezug auf die Zellen hat (und behält). Änderst du die Zellwerte, ändert sich das Chart.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Nekromus

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

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

  Alt 13. Jun 2019, 08:52
Ok. Ich habe eine Excel mit recht vielen Werten. Möchte aber nur ausgewählte Spalten anzeigen lassen. Wie kann ich das dann machen?

Ich dachte den Bezug hätte ich nur durch
Delphi-Quellcode:
serie.XValues := '=''Sued_Ost''!C3:C10';
    serie.Values := '=''Sued_Ost''!D3:D10';
festgelegt.

Geändert von Nekromus (13. Jun 2019 um 08:59 Uhr)
  Mit Zitat antworten Zitat
Jumpy

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

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

  Alt 13. Jun 2019, 08:59
Indem du dem Diagramm nur gewisse Spalten als Datenquelle zuordnest?
Kannst du das nicht mal manuell in Excel machen und das mit dem Makro-Rekorder aufzeichnen, damit du weißt, wie das nachher im Code zu schreiben ist?
Ralph
  Mit Zitat antworten Zitat
Nekromus

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

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

  Alt 13. Jun 2019, 09:01
Genau. Das habe ich ja durch

Delphi-Quellcode:
 serie.XValues := '=''Sued_Ost''!C3:C10';
    serie.Values := '=''Sued_Ost''!D3:D10';
gemacht. Das wäre eigentlich nur eine Datenreihe.

Trotzdem hat er alle drin.
  Mit Zitat antworten Zitat
Jumpy

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

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

  Alt 13. Jun 2019, 10:07
Ah Ok, jetzt versteh ich worauf du hinaus willst glaub ich. Es gibt in Excel-Diagrammen die SeriesCollection, als einer Sammlung von Datenreihen, die in dem Diagramm dargestellt werden. Du setzt immer nur die Daten der einer Serie aus dieser SeriesCollection.
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 01:23 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