AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi StringGrid -> Excel: Kommzahlen als Zahlen einfügen

StringGrid -> Excel: Kommzahlen als Zahlen einfügen

Ein Thema von cosypanther · begonnen am 1. Jan 2010 · letzter Beitrag vom 2. Jan 2010
Antwort Antwort
cosypanther

Registriert seit: 23. Dez 2007
25 Beiträge
 
Turbo Delphi für Win32
 
#1

StringGrid -> Excel: Kommzahlen als Zahlen einfügen

  Alt 1. Jan 2010, 18:56
Hallo!

Mit dem unten stehenden Code, den ich im Internet gefunden habe, werden die Daten aus meinem StringGrid 1:1
in Excel eingefügt und dargestellt. Diese Funktion nutze ich, um aus den errechneten Werten ein Diagramm zeichnen zu lassen.

Ich habe jedoch ein kleine Problem, sobald Kommazahlen im StringGrid sind.
Diese werden in Excel nämlich als Text eingefügt, was zu Problemen beim Zeichnen von Graphen führt.

Delphi-Quellcode:
 {create variant array where we'll copy our data}
    arrData := VarArrayCreate([1, StringGrid1.RowCount, 1, StringGrid1.ColCount], varVariant);

    {fill array}
    for i := 1 to StringGrid1.RowCount do
    for j := 1 to StringGrid1.ColCount do
      arrData[i, j] := StringGrid1.Cells[j-1, i-1];

    {initialize an instance of Excel}
    xls := CreateOLEObject('Excel.Application');

    {create workbook}
    wb := xls.Workbooks.Add;

    {retrieve a range where data must be placed}
    Range := wb.WorkSheets[1].Range[wb.WorkSheets[1].Cells[1,1],
    wb.WorkSheets[1].Cells[StringGrid1.RowCount, StringGrid1.ColCount]];

    {copy data from allocated variant array}
    Range.Value := arrData;

    {show Excel with our data}
    xls.Visible := True;
Quelle: http://www.scalabium.com/faq/dct0144.htm

Habt ihr eine Idee, wie sich das lösen lässt?

Viele Grüsse!
cosypanther
Miniaturansicht angehängter Grafiken
beispiel_156.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

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

Re: StringGrid -> Excel: Kommzahlen als Zahlen einfügen

  Alt 2. Jan 2010, 16:06
Hallo cosypanther,

im StringGrid liegen die Daten als String vor. In Deinem Fall muss der String erst in eine Zahl konvertiert werden.
Zum Bleistift:


Delphi-Quellcode:
var
  Zahl: Extended;
Delphi-Quellcode:
for i := 1 to StringGrid1.RowCount do
for j := 1 to StringGrid1.ColCount do
begin
  if TryStrToFloat(StringGrid1.Cells[j-1, i-1], Zahl) then
  begin
    arrData[i, j]:= Zahl
  end
   else
  begin
    arrData[i, j] := StringGrid1.Cells[j-1, i-1];
  end;
end;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
cosypanther

Registriert seit: 23. Dez 2007
25 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: StringGrid -> Excel: Kommzahlen als Zahlen einfügen

  Alt 2. Jan 2010, 17:20
Und wieder was dazugelernt! Läuft wunderbar!

Viele Grüße,
cosypanther
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:18 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