Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: nicola.nicoletti - Gennaio 09, 2013, 01:52:39 pm
-
Buon giorno
Ho la necessita di fare una applicazione che legga file in formato 2010.
La soluzione che ho intenzione di usare è quella di OLE.
Ho fatto questa piccola applicazione:
rocedure TForm1.Button1Click(Sender: TObject);
Var XLApp,XLSHEET: OLEVariant;
lastrow : integer;
begin
XLApp := CreateOleObject('Excel.Application'); // requires comobj in uses
try
XLApp.Visible := False; // Hide Excel
XLApp.DisplayAlerts := False;
if not OpenDialog1.Execute then exit;
XLApp.Workbooks.Open(OpenDialog1.FileName);
XLSHEET := XLApp.Workbooks.Sheets(0).Select;
lastrow:= XLSHEET.Range('A65536').End(xlUp).Row;
finally
end;
end;
Il compilatore va in errore su XLSHEET.Range('A65536').End(xlUp).Row;
dicendomi
unit1.pas(48,38) Fatal: Syntax error, "identifier" expected but "END" found
Non essendoci altri modi gratuiti per interagire con file excel 2010 su fpc , qualche anima buona mi può dire come posso eludere l'errore oppure aggirarlo
Ho provato a cambiare le partensi rotonde in quadrate , come in vba, ma ho sempre lo stesso problema.
Grazie
-
End è una parola chiave del linguaggio...
Sicuro che non esistano versioni gratuite?
Hai verificato con fpspreadsheet?
http://wiki.freepascal.org/FPSpreadsheet
-
Vedi qui' se ti puo' aiutare http://edn.embarcadero.com/article/10128
-
End è una parola chiave del linguaggio...
Sicuro che non esistano versioni gratuite?
Hai verificato con fpspreadsheet?
http://wiki.freepascal.org/FPSpreadsheet
Ciao
Ho già provato FPSpreadsheet ed utilizzato ma posso scrivere file excel 97/2003 .
Posso leggere e scrivere su excel ed inserire formule .
A me serve qualcosa che mi generi file 2010 ed mi permetta di inserire delle pivot.
Prodotti professionali che fanno questo mestiere esistono , tipo tms flexcel studio che ora non supportano lazarus 1.0x e non è gratuito.
Flexcel ha supportato in vecchie versioni lazarus.
-
Vedi qui' se ti puo' aiutare http://edn.embarcadero.com/article/10128
Ciao
Su delphi/Rad studio su oggetti variant non controlla se vengono usate parole riservate.
Peccato che devo usare Lazarus
-
End è una parola chiave del linguaggio...
Sicuro che non esistano versioni gratuite?
Hai verificato con fpspreadsheet?
http://wiki.freepascal.org/FPSpreadsheet
Ciao
Ho già provato FPSpreadsheet ed utilizzato ma posso scrivere file excel 97/2003 .
Posso leggere e scrivere su excel ed inserire formule .
A me serve qualcosa che mi generi file 2010 ed mi permetta di inserire delle pivot.
Prodotti professionali che fanno questo mestiere esistono , tipo tms flexcel studio che ora non supportano lazarus 1.0x e non è gratuito.
Flexcel ha supportato in vecchie versioni lazarus.
Questo file permette di scrivere in formato "open office". Il 2010 supporta questo formato (dopo la sentenza che ha obbligato microsoft a farlo).
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/fpspreadsheet/xlsxooxml.pas
Non va bene?
Non uso le tabelle pivot, per cui non so se puoi usare un template pronto e modificarlo via programma.
In questo modo potresti avere pure un grado di configurazione non male ;)
-
End è una parola chiave del linguaggio...
Sicuro che non esistano versioni gratuite?
Hai verificato con fpspreadsheet?
http://wiki.freepascal.org/FPSpreadsheet
Ciao
Ho già provato FPSpreadsheet ed utilizzato ma posso scrivere file excel 97/2003 .
Posso leggere e scrivere su excel ed inserire formule .
A me serve qualcosa che mi generi file 2010 ed mi permetta di inserire delle pivot.
Prodotti professionali che fanno questo mestiere esistono , tipo tms flexcel studio che ora non supportano lazarus 1.0x e non è gratuito.
Flexcel ha supportato in vecchie versioni lazarus.
Questo file permette di scrivere in formato "open office". Il 2010 supporta questo formato (dopo la sentenza che ha obbligato microsoft a farlo).
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/fpspreadsheet/xlsxooxml.pas
Non va bene?
Non uso le tabelle pivot, per cui non so se puoi usare un template pronto e modificarlo via programma.
In questo modo potresti avere pure un grado di configurazione non male ;)
Grazie Stilgar ,
mi hai dato una bella idea, ti sono debitore
Ciao
-
:D
Sul forum di lazarus mi hanno suggerito come risolvere.
Bisogna mettere & prima della parola riservata END per eludere il controllo del compilatore.
Ho provato e funziona
-
"&" -> "&End" ...
Non conosco questa sintassi.
-
SE cambi in XLSHEET.Range('A65536').&End(-4162.).Row lo compila
Ti riporto la citazione
FPC allows redefinition of Pascal reserved words by prepending an & to the word.
So it may be that substituting &end would work?
It's worth a try.
-
Avrei dovuto pensarci: è una nuova feature di fpc che in qualche occasione ho anche utilizzato... ::)
-
Carina come cosa. ;)
E soprattutto utile :D