Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Excel erzeigen mit SwissDelphiCenter code geht nicht (https://www.delphipraxis.net/164833-excel-erzeigen-mit-swissdelphicenter-code-geht-nicht.html)

himitsu 1. Dez 2011 20:21

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
siehe Bummi ... der macht es richtig.

Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
const Test: array[0..1] of Byte = ($08, $FF);
begin
  Test[0] := 10;
end;
Test ist, wenn die zuweisbaren Konstanten aktiviert sind, eine kranke und unübersichtliche Version von globalen Variablen.

Const in Var zu ändern bringt da nichts, da dieses dann nur eine "lokale" Variable ergäbe.

Typisierte Konstanten sind halt "nur" schreibgeschützte Variablen ... "sinnloser" Weise


Was ist erzeigen?

himitsu 1. Dez 2011 23:32

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Leute ab D2009 (wegen Generics) können ja gerne mal dieses ausprobieren.
Wie man es nutzt, sollte hoffentlich ersichtlich sein.

Wenn es läuft, dann läßt sich bestimmt auch noch eine Version ohne die bösen Generics erstellen.


noch vollkommen ungetestet ... ich hof' ich hab alles richtig übersetzt und richtig neu zusammengesetzt

DeddyH 2. Dez 2011 07:05

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
Zitat:

Zitat von fkerber (Beitrag 1138847)
Ist es nicht so, dass die Arrays konstant sind, aber ihr Inhalt deswegen doch noch lange nicht?!

Darauf habe ich mich bezogen, unabhängig von "richtig" oder "falsch". Obige Aussage trifft also nur zu, wenn die zuweisbaren typisierten Konstanten aktiviert sind.

Bummi 2. Dez 2011 07:14

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
@himitsu

Bei mir geht weder Laden einer vorhanden, noch das Speichern einer neuen, ich habe es so versucht:
Delphi-Quellcode:
var
e:TExcelCreator;
begin
     e :=TExcelCreator.Create(self);
     //e.LoadFromFile('C:\temp\test1.xls');
     e.Cell[1,1]:='Was auch immer'#13#10'in zweiZeilen';
     e.Cell[2,2]:=1234.5678;
     e.SaveToFile('C:\temp\test.xls');
     e.Free;
end;
BTW: warum hast Du von TComponent abgeleitet?

Chemiker 2. Dez 2011 13:13

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
Hallo,


vielleicht hilft das weiter:http://www.delphipraxis.net/95460-st...speichern.html

Bis bald Chemiker

Bummi 2. Dez 2011 13:20

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
@Chemiker
danke, ich suche nicht, ich wollte himitsu nur eine Rückmeldung geben

himitsu 3. Dez 2011 18:36

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
Liste der Anhänge anzeigen (Anzahl: 3)
@Chemiker:
Im Prinzip ist das der gleiche Code, wie der hier schon im 1. Post Genannte, woraus ich meine Klasse erstellt hab.
Nur daß dein verlinker Code nur Strings kann, wärend dieser noch Integer und Floats kennt und daß man die Daten nochmals verändern kann, vor dem Speichern.


Zitat:

Zitat von Bummi (Beitrag 1138877)
Bei mir geht weder Laden einer vorhanden, noch das Speichern einer neuen, ich habe es so versucht:

BTW: warum hast Du von TComponent abgeleitet?

Joar, wenn man (ich) so blöd ist und die Cell-Info in TExcelCreator.SetVarCell, nach dem erfolgreichen Speichern, wieder mit Zufallswerten zu überschreiben
und dann auch noch beim Abspeichern (SaveToFile) die falschen Anzahlen der Rows und Cols verwendet (beim Auslesen mit <= statt => gesucht),
dann braucht man sich nicht wundern. :oops:


Nja, wir leben halt in einer KlickbuntiOOPWelt ... drum ist das schon so ausgelegt, daß man diese Komponente irgendwann mal auf der Toolpalette in die Form klatschen kann. :stupid:



PS: Bitte nicht über die OutputDebugStrings im Code wundern.
Das Schreiben scheint nun zu gehn, jedenfalls mit dem ersten Teil dieses Codes.
Delphi-Quellcode:
var
  E: TExcelCreator;
begin
  E := TExcelCreator.Create(nil);
  E.Cell[1,1] := 'Was auch immer'#13#10'in zweiZeilen';
  E.Cell[2,2] := 1234.5678;
  E.SaveToFile('C:\Users\Frank\Desktop\ExcelFile.xls');
  E.Free;

  E := TExcelCreator.Create(nil);
  E.LoadFromFile('C:\Users\Frank\Desktop\ExcelFile.xls');
  E.Cell[2,1] := 'noch mehr';
  E.SaveToFile('C:\Users\Frank\Desktop\ExcelFile2.xls');
  E.Free;
Aber beim Auslesen der selbsterstellten Datei hapert es noch.
Auch wenn es eventuell oftmals nicht geht fremde Dateien einzulesen, aber die eigenen sollten schon noch gehn (irgendwann mal).

OK, vielleicht bekommt noch jemand raus, wie man mehrzeilig in eine Spalte rein macht.



Nja, also im Prinzip ist dieses alte Binärformat doch recht einfach ufgebaut.
Eventuell könnte man sich ja auch mal ansehn, wie das neue gezippte XML-Format aussieht.


[edit]
So, jetzt geht's Speichern, des Auslesen und beim auslesen hab ich versucht noch ein bissl flexiebler zu sein, was Fremddateien angeht.
Da ich aber nur einen kleinen Teil der Spezifikation drin hab und es auch nicht angedacht ist alles aufzunehmen, wird auch niemals alles unterstützt werden, aber hier geht's ja mehr ums Erstellen der Datei, als ums Einlesen.

PS: Über mein Excel hab ich grade rausgefunden, daß es sich bei dieser Datei um ein "Arbeitsblatt/Workssheet in der uralten Version 2" handelt.

himitsu 4. Dez 2011 12:23

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
- Alles etwas aufgeräumt
- die OldStyle-Variante läuft hoffentlich in älteren Delphi-Versionen
- die anderen beiden Units sind vermutlich ab D2009 nutzbar (nja, zumindestens in D2010 getestet)
- XE2 nicht getestet und vermutlich auch nicht direkt compilierbar, dank der neuen Namensgebung der RTL-Units
- mit StringGrid-Exporter, Importer und eventuell auch für die TStringGrid-Nachfahren, wie TDBGrid

Jumpy 6. Dez 2011 07:22

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
Zitat:

Zitat von himitsu (Beitrag 1139137)
OK, vielleicht bekommt noch jemand raus, wie man mehrzeilig in eine Spalte rein macht.

Das ist ja afaik keine Sache "wie der String aufgebaut ist" bzw. wie der Zeilenumbruch erzeugt wird, sondern in Excel ist das eine zusätzliche Einstellung, dass für eine bestimmte Zelle der Zeilenumbruch aktiviert ist. Keine Ahnung wie man das in den Binaries erkennt.

UliTs 16. Feb 2024 14:13

AW: Excel erzeigen mit SwissDelphiCenter code geht nicht
 
Zitat:

Zitat von himitsu (Beitrag 1138870)
Leute ab D2009 (wegen Generics) können ja gerne mal dieses ausprobieren.
Wie man es nutzt, sollte hoffentlich ersichtlich sein.

Wenn es läuft, dann läßt sich bestimmt auch noch eine Version ohne die bösen Generics erstellen.


noch vollkommen ungetestet ... ich hof' ich hab alles richtig übersetzt und richtig neu zusammengesetzt

Hallo @himitsu, ich hatte Dir eine PN geschickt. Ist sie angekommen?
Viele Grüße Uli


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Seite 2 von 3     12 3      

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