AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Excel - Export ohne Excel - Problem beim erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

Excel - Export ohne Excel - Problem beim erzeugen

Ein Thema von padavan · begonnen am 16. Aug 2005 · letzter Beitrag vom 2. Jul 2010
 
GHorn

Registriert seit: 24. Mär 2009
Ort: NRW
124 Beiträge
 
#31

Re: Excel - Export ohne Excel - Problem beim erzeugen

  Alt 19. Jun 2009, 09:26
@ alphaflight83:

chemiker hat ja schon auf seinen Link in #19 hingewiesen. Hier
noch einige zusätzliche Erläuterungen zum Quelltext von chemiker:

Delphi-Quellcode:
const
   XLS_WORKBOOK = $5; // nur Workbook und separate Sheets
   XLS_WORKSSHEET= $10; // Sheet or dialogue record (s.S.136 Dokument s. oben)
   XLS_BOF = $809; // BIFF5 bis BIFF8 (s.S.135 Dokument s. oben)
   XLS_BIFFVER = $600; // BIFF8 (s.S.136 Dokument s. oben)
   XLS_LABEL = $204; // (s.S.187, 5.63 Dokument s. oben)
   XLS_EOF = $A0; // (s.S.161, 5.37 Dokument s. oben)
   XLS_EXCEL_VERSION = 1;

type
  TXLS_BOFRec= packed record // Start des Datenblockes
    RecCode: Word; // $809 BOF
    RecLaenge: Word; // Record Länge // Komplett 16/ normal 8
    BIFFVersion: Word; // $600 BiffVersions-Nummer 8
    Bereich: Word; // $10 = Worksheet
    ExcelVersion: Word; // muss nicht angegeben werden (z.B. 2719=Excel 2000)
    ExcelDatum: Word; // muss nicht angegeben werden
  end;
Delphi-Quellcode:
procedure TXLS_DateiClass.XLS_BOFRecDatenFuellen;
begin
  with FBOF do
    begin
      RecCode:= XLS_BOF ; // $809
      RecLaenge:= 8;
      //BIFFVersion:= XLS_BIFFVER; // $600 BIFF8
      BIFFVersion:= 1; // kein BIFF8
      Bereich:= XLS_WORKSSHEET; // $10
      ExcelVersion:= 1;
      ExcelDatum:= 0;
    end;
end;
Setze ich die BIFF-Version auf 8 durch $600, erhalte ich auch diese schmucken
Kästchen und Sonderzeichen. BIFF8 ist Unicodefähig. Aber in der erzeugten Datei
sind die Texte / Daten, die eigentlich in die Zellen geschrieben werden sollen,
unvollständig bzw. verschoben.
Excel liest (parst) diese Streams und erwartet an einer bestimmten Position auch
bestimmte Angaben für die Formatierung usw. Stehen an diesen Stellen aber z.B.
Texte für die Zellen, muß das schief gehen. Das Problem ist also, den Buffer des
Streams korrekt zu füllen. Insbesondere, was die Zeichenlängen und Zeilenendezeichen
betrifft.

Gruß
Gerald

edit: Die Seitenangaben beziehen sich auf das Dokument compdocfileformat.pdf
(s. Beitrag #19).
  Mit Zitat antworten Zitat
 


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 17:55 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