Benim sorunum forumumdaki stringgridden bir xls dosyasına kayıt yapmak istiyorum ama aynen exceldeki gibi her hücreye verilerin ayrı ayrı girilmesini istiyorum.
Forumda çok araştırma yaptım ama hep bölük pörçük bilgilere ulaşabildim. Yardımcı olabilirseniz sevinirim.
Naile hanımın daha önce yazmış olduğu stringaligngrid için excele dosya kaydetme procedurunu inceledim ama bi türlü çalıştıramadım. Kodu burda, bu yararlı olacaksa bunu nasıl çalıştırabilirim???
Bir ara ben de çokça aramıştım.
Kütüphanemden çalışan bir kod.
Düzenlemelerini yaparsın artık.
Dikkat etmen gereken olay koordinatlamalar.
Delphi sütun, satır şeklinde koordinatlandırılırken
Excel satır,sütun şeklinde koordinatlandırılıyor
uses
comobj
var
v,sayfa:variant;
i, j:integer;
begin
try
v:=createoleobject('excel.application'); //exceli oluştur
except
on E: Exception do
raise Exception.CreateFmt('Excel açılamadı. Sistem Mesajı: %s', [E.Message]);
end;
for j:=2 to Stringgrid2.RowCount do
for i := 0 to StringGrid2.ColCount do
sayfa.cells[j,i+1]:=StringGrid2.Cells[i,j-1]+' ';
v.visible:=true; //Exceli göster
{
try
v.Save;
except
// kullanıcı kaydetme işlemini iptal etti.
end;
}
Cevaplarınız için çok teşekkür ediyorum. Hemen deneyip çalıştırıp çalıştıramadığımı yazacağım
İnşallah başlık diğer arkadaşların arayıp bulması için kolay olmuştur, çünkü forumda baya bi arayıp bulamamıştım
Yok yok sonunda çalıştı hata veriyormuş gibi gözüküyor ama doğru düzgün çalışıyor Oley ya sağolun arkadaşlar nasıl rahatladım bi bilseniz Emeği geçen herkese çok teşekkür ediyorum
procedure TForm1.FarklKaydet1Click(Sender: TObject);
var
karalama,sayfa:variant;
i, j:integer;
begin
try
karalama:=createoleobject('excel.application'); //exceli oluştur
except
on E: Exception do
raise Exception.CreateFmt('Excel açılamadı. Sistem Mesajı: %s', [E.Message]);
end;
karalama.workbooks.add; //yeni calisma kitabini ekle
sayfa:=karalama.workbooks[1].worksheets[1]; {Birinci calisma sayfasini sayfa degiskenine ata}
for j:=1 to Stringgrid1.RowCount do
for i := 0 to StringGrid1.ColCount do
sayfa.cells[j,i+1]:=StringGrid1.Cells[i,j-1]+' ';
karalama.visible:=false; //Exceli gösterme
try
karalama.save;
except
// kullanıcı kaydetme işlemini iptal etti.
end;
end;
Bu kodlarla kaydederken excel My Documents in içine ÖZGEÇMİŞ.XML diye bişi kaydediyo bunu bi türlü yokedemedim acaba neden kaynaklanıyor olabilir???
- Öncelikle, bu kurguladığın sistemde EXCEL dökümanı hep açık kalıyor diye değerlendiriyorum. Yani her işlemde yeni bir Excel dökümanı açıp öyle bırakılıyor.
- Aşağıdaki şekilde denersen sorun kalmaz... Kaydedilecek dosya adını belirlemek için delphideki SaveDialog'dan faydalanabilirsin.