Yorumları: 1.044
Konuları: 149
Kayıt Tarihi: 14-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.097 Uzman
07-09-2016, Saat: 01:26
(Son Düzenleme: 07-09-2016, Saat: 01:27, Düzenleyen: pro_imaj.)
Merhaba Arkadaşlar;
Windows tarafında çalışan programda arka planda excel açılıyor ve veri yazıp aynı dosyanın üzerine kaydediliyor.
Yapmak istediğim ise; ilgili excel dosyasını Excel'in özelliğini kullanarak PDF olarak kaydetmek.
Aşağıdaki kod parçası ile bunu yapmaya çalıştığımda 'method exportasfixedformat not supported by automation object' bu yöntemin desteklenmediği hatasını alıyorum. Biraz araştırdığımda bu linkteki çözüm ile yapılabileceği anlatılıyor bilgisayarda herhangi bir ayar yapmadan bu işlem yapmak istiyorum. Bu konuda daha önce Excelden PDF kaydeden var mı acaba.
Excel.ExportAsFixedFormat(0, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
Teşekkürler.
Yorumları: 227
Konuları: 69
Kayıt Tarihi: 07-09-2016
Rep Puanı: 269 Acemi
merhaba, delphi hangi versiyonu kullanıyorsun ?
Yorumları: 1.044
Konuları: 149
Kayıt Tarihi: 14-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.097 Uzman
07-09-2016, Saat: 08:56
(Son Düzenleme: 07-09-2016, Saat: 08:57, Düzenleyen: pro_imaj.)
(07-09-2016, Saat: 08:49)erdogan Adlı Kullanıcıdan Alıntı: merhaba, delphi hangi versiyonu kullanıyorsun ?
Merhaba;
Delphi = XE10.1
Office = 2016
Yorumları: 227
Konuları: 69
Kayıt Tarihi: 07-09-2016
Rep Puanı: 269 Acemi
07-09-2016, Saat: 09:00
(Son Düzenleme: 07-09-2016, Saat: 09:03, Düzenleyen: erdogan.)
merhaba, delphi hangi versiyonu kullanıyorsun ?
Aşağıdaki bileşeni incele bir çok formatta kayıt yapabiliyorsun pdf, jpg, html, vs.vs.
http://www.scip.be/index.php?Page=Compon...ms&Lang=NL
Yorumları: 4.247
Konuları: 381
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 17.121 Üstad
07-09-2016, Saat: 10:57
(Son Düzenleme: 07-09-2016, Saat: 10:57, Düzenleyen: Fesih ARSLAN.)
Merhaba,
Vermiş olduğunuz linkte Windows/Microsoft Office DCOM olayları anlatılıyor. PDF konusunda bir açıklama göremedim.
Fakat asıl amacınız, Excel belgesinin PDF dosyası gibi değiştirilememesi ise Excel'i korumaya alabilirsiniz.
Örneğin;
ExcelApp.ActiveSheet.Protect(Password:='şifrem', DrawingObjects:=True, Contents:=True, Scenarios:=True);
Excel Koruma Görünümü hakkında daha detaylı bilgiyi MSDN'den alabilirsiniz.
Ben bir çok uygulamamda PDF export için FastReport, Devexpress gibi harici bileşenler kullanıyorum.
DelphiCan'dır!
Yorumları: 1.572
Konuları: 88
Kayıt Tarihi: 09-08-2016
Rep Puanı: 13.841 Üstad
Birincisi; burada yazdığına göre ExportAsFixedFormat komutu Office 2007 ile birlikte gelmiş.
İkincisi; yine aynı sayfaya göre fonksiyonun ilk parametresi type(xlTypePDF yada xlTypeXPS), ikincisi dosya ismi olmalı.
Üçüncüsü; bu komut Excel'in bir Sheet'ine uygulanmalı. Sanırım siz direk Excel Ole Object'ine uyguluyorsunuz.
Şöyle birşey yapmalısınız:
ObjExcel := CreateOleObject('Excel.Application');
ObjWorkbook := ObjExcel.Workbooks.Open(Excel_Dosya_Ismi);
ObjSheet := ObjWorkbook.ActiveSheet;
ObjSheet.ExportAsFixedFormat(xlTypePDF, PDF_Dosya_Ismi,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam
);
There's no place like 127.0.0.1
Yorumları: 1.500
Konuları: 83
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12.314 Üstad
Bu tarz durumlarda benim yaptığım şey yeni bir macro kaydı başlatmak ardından yapacağım işlemi yapmak sonra macro'yu durdurmak ve koduna bakmak. İstediğiniz işi Excel'e macro ile yaptırınca aşağıdaki gibi bir kod verdi bana:
Sub Macro1()
'
' Macro1 Macro
'
'
ChDir "C:\Users\ProjectX\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\ProjectX\Desktop\Book1.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 884
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.853 Uzman
Selam, bende Office 2007 var ve işlemi yapmak istediğimde parametre hatası veriyor, fakat şurayı https://msdn.microsoft.com/en-us/library...98122.aspx okuyunca pdf eklentisi kurulu olmalı diye görüyorum biraz daha araştırınca şu linkte https://www.microsoft.com/tr-tr/download....aspx?id=7 eklentiyi buldum fakat indirip deneyemiyorum. Sizde de öyle bir sorun olabilir belki. Ayrıca sizin yazdığınız şekilde değil de @ SimaWB nin yazdığı şekilde kullanmanız gereklidir. Ama sizin yazdığınıza ve benim net deki araştırmalarıma göre bu metod dışarıdan harici bir program ile desteklenmiyor gibi görünüyor.
Yorumları: 1.044
Konuları: 149
Kayıt Tarihi: 14-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.097 Uzman
Merhaba Arkadaşlar cevaplarınız için çok teşekkür ederim.
@SimaWB Yazdığınız kod satırlarını yazmıştım ben sadece PDF açarken ki kodları yazdım. (Sizin yazdığınızla da aynı hatayı alıyorum.)
Tuğrul bey sizin yazdığınız şekildede aynı hatayı alıyorum.
@esistem sizinde belirttiğiniz gibi sanırım office 2007 den çıkmış bendeki 2016 olduğundan sorun olabilir.
Normalde Excel'in farklı kaydet özelliğinde PDF kaydetme olduğundan Excel.SaveAs('c:\1.pdf'); yapıyorum bunda da aynı hatayı veriyor.
Başka bir çözüm var mı acaba bildiğiniz.
Yorumları: 1.500
Konuları: 83
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12.314 Üstad
GetActiveOleObject & CreateOleObject metodlarını mı kullanıyorsunuz Excel OLE nesnesini elde etmek için ?
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
|