Entwickler-Ecke

Datenbanken - Excel ohne OLE


eddyp - So 22.02.04 03:02
Titel: Excel ohne OLE
um Daten in EXCEL zu schreiben mache ich das jetzt per Stream. Das funktioniert für Text und Integer recht gut. Nur für Real-Zahlen fehlt mir der Aufbau.

Text:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
  CXlsLabel: array[0..5of Word = ($20400000);
  CXlsNumber: array[0..4of Word = ($20314000);

procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word; 
  const AValue: string); 
var 
  L: Word; 
begin 
  L := Length(AValue); 
  CXlsLabel[1] := 8 + L; 
  CXlsLabel[2] := ARow; 
  CXlsLabel[3] := ACol; 
  CXlsLabel[5] := L; 
  XlsStream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel)); 
  XlsStream.WriteBuffer(Pointer(AValue)^, L); 
end;


Integer:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure XlsWriteCellNumber(XlsStream: TStream; const ACol, ARow: Word;
  const AValue: Double);
begin
  CXlsNumber[2] := ARow;
  CXlsNumber[3] := ACol;
  XlsStream.WriteBuffer(CXlsNumber, SizeOf(CXlsNumber));
  XlsStream.WriteBuffer(AValue, 8);
end;


real:?

Ich finde niergend wo wie das bei Real aussieht und in einer .XLS- Datei find ich mich erst recht nicht zurecht.

Das Formatieren bekomme ich durch die Makroaufzeichnung wahrscheinlich noch hin und beschreibe es hier mal...


Alfons-G - So 22.02.04 15:51

Auf http://www.swissdelphicenter.ch findest Du einen Tipp, welcher u.a. das Schreiben von Real-Zahlen in eine XLS-Datei zeigt.

8)


eddyp - So 22.02.04 16:45

Danke für den Tip. Der Fehler lag in einem anderen Programmteil. Real-Zahlen werden auch mit "XlsWriteCellNumber" in die ".XLS"- Datei geschrieben. Ich hatte nur keine Realzahl übergeben(Programmfehler).

nur wie ich eine Formatierung (vor allem für Zahlen) in die XLS schreibe weiß ich doch nicht. Die aufgezeichneten Makros enthalten zwar die Form. Aber in welcher Form das in der XLS abgespeichert wird ???


Sven - Mo 23.02.04 09:13

Wnn Du ein fast komplette Dokumentation von Excel suchst dann schau mal das hier [http://sc.openoffice.org/excelfileformat.pdf] an :D
Diese Dokumentation verwende ich zur Erstellung meiner Excel-Unabhängigen Komponente zum Lesen und Schreiben von Exceldateien.

Falls Du Hilfe beim Erstellen der RPN-Formeln für Excel hast, schick mir ne PN dann bekommst Du Source.

Falls Du einen besseren BIFF-Viewer, als den von MS brauchst dito.