E' proprio quello il problema, pur avendo compilato l'IDE e pur vedendo il componente nei pacchetti installati se provo a scriverlo e a richiamare il code completation dell' IDE non me lo vede lo stesso.
Se lo forzo a mano e metto quello che mi hai detto ottengo questo:
Unit1.pas(9,20) Fatal: Can't find unit fpspreadsheet used by Unit1
Allora ho provato ad aprire direttamente il file di esempio "excel5demo" e non chiedermi il perchè su quello il pacchetto lo riconosce :o
Ora voi che siete più esperti mi sapete spiegare come mai questo sul progetto di esempio la unit fpspreadsheet la riconosce:
uses
Classes, SysUtils, fpspreadsheet, xlsbiff5,
laz_fpspreadsheet;
E invece nel mio fpspreadsheet dice che è inesistente?
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
EditBtn, fpspreadsheet, fpsallformats, fpspreadsheet_pkg;
Da qualche parte nelle proprietà del progetto serve aggiungere ancora qualcosa?
Ah giusto per informazione nel mio progetto non riconosce nemmeno gli altri due xlsbiff5 e laz_fpspreadsheet
Alè primi errori.
Dichiaro come:
xlsWrkB: TsWorkbook;
xlsWrkS: TsWorksheet;
E poi provo a leggere un file Excel esistente ma va già in errore qua ( ovviamente fileName è istanziato con il percorso completo al file da aprire ):
xlsWrkB.ReadFromFile(fileName);
Ho provato anche a passare come secondo parametro sia sfExcel5 che sfExcel8 ( subito non l'ho messo che sulla doc si diceva che faceva da solo in automatico se non metti niente ).
L'errore che ottengo in caso di nessun secondo parametro è:
blablabla ... raised exception class 'External: SIGSEGV'.
In caso metta ad esempio sfExcel5 ottengo invece:
blablabla ... raised exception class 'EStreamError' with message: unable to open /Book
Ogni consiglio è ben accetto :D
Ehm :-[ come non detto.
Manvaca:
xlsWrkB:=TsWorkbook.Create;
prima del ReadFromFile, sorry.
Per completezza aggiungo i comandi per leggere il contenuto di una cella:
var
fileName: String;
xlsWrkB: TsWorkbook;
xlsWrkS: TsWorksheet;
begin
fileName:='c:\miodoc.xls'; {selezionabile magari da un TFileNameEdit}
xlsWrkB:=TsWorkbook.Create;
xlsWrkB.ReadFromFile(fileName);
xlsWrkS:=xlsWrkB.GetFirstWorksheet;
ShowMessage(xlsWrkS.ReadAsUTF8Text(1,1)); {mostra il contenuto della cella B2}
end;