Witam wszystkich.
Czytałem posty z tego forum, przeglądałem google, a jednak coś umknęło mojej uwadze.
Sprawa jest taka, że chce zapisać coś do pliku Excela czyli do XLS, ale...:
- Nie mam zainstalowanego MS Ofica tylko OpenOfica
- Potrzebuje użyć do tego ADO lub cos podobnego
- CVS odpada
mam coś takiego:
var
strNazwaPliku : string;
i : integer;
begin
strNazwaPliku := 'Meldugn_test.xls';
try
CopyFile( PChar( 'c:\Meldung_test_got.xls' ) , PChar( 'c:\' + strNazwaPliku ), false );
AdoConnection.Close;
AdoConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";' +
'Data Source=' + 'c:\' + strNazwaPliku + ';' + //OpenDialog.FileName +
'Extended Properties=Excel 8.0;';
ADOCommand1.Connection := ADOConnection;
AdoConnection.Open;
ADOCommand1.CommandText := 'Insert Into [Sheet1$] (A1) VALUES (' + 'cosik' + ')';
ADOCommand1.Execute;
ADOConnection.Close;
except
ADOConnection.Close;
ShowMessage( 'Błąd' );
end;
Jak widać chciałbym zapisać coś w komórce A1 <- lub jakiejkolwiek innej np.: H100.
Mam w tej chwili komunikat "Parametr cosik nie posiada wartości domyślnej" <- nie ważne co wstawie pod cosik zawsze mam błąd o braku wartości domyślnej.
Jeśli ktoś mógłby mnie nakierować i pomóc byłbym wdzięczny.
ps.: Próbowałem także AdoDataSet.FieldByName[ 'A1' ].AsString := 'cosik' <- ale zwracał błd że Komórka A1 nie istnieje. Plik do którego się łącze istneje i ma jedną zakładkę Sheet1.
Próbowałem także zmieniać wartości w excelu na innym kompie i potem operować na tym pliku. Odczyt idzie bezz problemu, ale nawet jeśli komórka istniała i miała jakąś wartość to AdoDataSet daje błąd o braku komórk, a AdoCommand o braku wartości domyślnej.
Aktualnie grzebie jeszcze w zasobach google i grup dyskusyjnych, ale nic nie mogę znaleźć konkretnego co by mi pomogło.
Z góry dziękuje za pomoc.
Pozdrawiam