[gelöst] laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Rund um die LCL und andere Komponenten
Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

[gelöst] laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von Michl »

Hallo,

ich habe mir einen Excel-Exporter gebaut. In einer Anwendung läuft dieser super. Nun habe ich mir den Quelltext in eine andere Anwendung kopiert, die Abhängigkeit laz_fpspreadsheet per ProjectInspector hinzugefügt und die Anwendung gestartet. Sie wird kompiliert, doch beim Speichern wird die Exception rsUnsupportedWriteFormat geworfen. Scheinbar fehlt mir eine Abhängigkeit. Da das andere Projekt mehrere Dutzend Abhängigkeiten hat, wollte ich hier fragen, ob jemand weiß welche oder woran es sonst liegen könnte?

Ich habe das Problem in einem einfachen Test nachgebaut (nochmals im Ausgangsprojekt getestet, dort läuft es):

Code: Alles auswählen

uses ..., fpspreadsheet, fpsTypes;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  Workbook: TsWorkbook;
  Worksheet: TsWorksheet;
begin
  Workbook := TsWorkbook.Create;
  try
    Worksheet := Workbook.AddWorksheet('Tests');
    Worksheet.WriteColWidth(0, 5, suChars);
    Worksheet.WriteText(0, 0, 'Test');
    Workbook.WriteToFile(Application.Location + 'test.xls', sfExcel8, true);
  finally
    Workbook.Free;
  end;
end;

Auch als Projekt anbei.
Dateianhänge
test_fpspreadsheet.zip
(1.86 KiB) 35-mal heruntergeladen
Zuletzt geändert von Michl am Fr 18. Aug 2017, 22:12, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von Mathias »

Ich habe mir gerade diese Komponente installiert.
Mit ein bisschen rum pröbeln, hat es bei Lazarus einen neuen Reiter "Data Export" gegeben. Neu fehlt dort eine Komponente Namens XLS, einzig was mich an Excel erinnert, ist CSV.
Seit ich den CSVExporter auf das Form gelegt habe, startet dein Poject wenigsten ohne Fehler, aber speicher geht wie bei dir auch nicht.

Vielleicht hilft die diese Info weiter.

Ansonsten sieht diese Komponente recht interessant aus. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von Michl »

Naja eigentlich geht die Procedure genau so in dem anderen Projekt. Ich habe per Copy&Paste exakt den selben Code dort eingefügt. Aber danke fürs testen. Werde, wenn wp nicht weiter weiß, wohl das Projekt reduzieren und schauen, was die Ursache ist.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von Mathias »

Fehler gefunden:
Du musst noch folgende Unit einbinden: xlsbiff8

PS: Die Komponente scheint wirklich noch recht interessant zu sein. Ein Excel-Export, ist sicher mal was nützliches. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von wp_xyz »

"Unsupported Write Format" kommt wenn fpspreadsheet den Writer für das gewünschte Dateiformat nicht findet. Du musst dazu die betreffende Unit in Uses aufnehmen, oder gleich fpsAllFormats für alle unterstützten Dateiformate (wodurch dann aber auch der Code für unnötige Dateiformate ins Programm aufgenommen wird): http://wiki.lazarus.freepascal.org/FPSp ... t#Workbook (am Ende des Abschnitts bei "Note").

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von Michl »

Danke, damit funktioniert es! :)

Merkwürdig, in dem anderen Projekt habe ich nirgends diese Units eingebunden, weder xlsbiff8, noch fpsAllFormats.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von Mathias »

Ich habe es bei den Examples gesehen.

./lazarus-ccr-svn-6004/components/fpspreadsheet/examples/read_write/excel8demo

Merkwürdig, in dem anderen Projekt habe ich nirgends diese Units eingebunden,

Vielleicht wurde diese bei dir mit einer anderen Unit im Hintergrund eingebunden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von af0815 »

Ich glaube, da muss ein jeder durch, der mit laz_fpspreadsheet arbeitet :-)

ich nehme schon fast reflexartig fpsAllFormats in die uses auf.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von Mathias »

ich nehme schon fast reflexartig fpsAllFormats in die uses auf.

Gute Idee, dort wird alles nötige eingebunden. Vielleicht hat Michel diese Unit bei seinem alten Programm auch eingebunden.

Code: Alles auswählen

uses
  xlsbiff2, xlsbiff5, xlsbiff8, xlsxooxml, xlsxml, fpsopendocument, fpscsv,
  fpshtml, wikitable;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von Michl »

Aha, habe den Unterschied jetzt doch noch entdeckt. In dem Projekt, was funktionierte, hatte ich in der .lpr in der Uses Klausel "laz_fpspreadsheet" stehen. Damit hat es funktioniert. Wie es dahin kam, ist mir entfallen.

Danke nochmal an alle!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: laz_fpspreadsheet wirft rsUnsupportedWriteFormat

Beitrag von wp_xyz »

Michl hat geschrieben:Merkwürdig, in dem anderen Projekt habe ich nirgends diese Units eingebunden, weder xlsbiff8, noch fpsAllFormats.

Welches FPSpreadsheet hast du? Im Trunk habe ich das vor nicht allzulanger Zeit geändert (r5957, 24.Juni), weil fpsAllFormats irgendwo erwähnt war. Das würde zwar dieses Problem verhindern, aber auch den Benutzer zwingen, alle Formate mitzuschleppen, auch wenn er sie nicht benötigt - leider gibt es kein "un-uses". Daher habe ich es rausgenommen. Ja, Andreas hat recht, da muss jeder durch (oder das wiki lesen).

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: [gelöst] laz_fpspreadsheet wirft rsUnsupportedWriteForma

Beitrag von Michl »

fpspreadsheet steht bei revision 5965. Ich kann ja trotzdem mal updaten :wink:

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] laz_fpspreadsheet wirft rsUnsupportedWriteForma

Beitrag von Mathias »

Ich habe mit 6004 anscheinend noch eine neuere erwischt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: [gelöst] laz_fpspreadsheet wirft rsUnsupportedWriteForma

Beitrag von wp_xyz »

6004? Wo hast du die denn her? Die letzte Revision im ccr-svn ist 5993 vom 10.August.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] laz_fpspreadsheet wirft rsUnsupportedWriteForma

Beitrag von Mathias »

Google hat mir diese gegeben, ich werde morgen auf dem PC gucken, dort müsste der Link noch vorhanden sein.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten