Konuyu Oyla:
  • Derecelendirme: 4.5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Excel Export PDF
#1
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.
Cevapla
#2
merhaba, delphi hangi versiyonu kullanıyorsun ?
Cevapla
#3
(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
Cevapla
#4
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
Cevapla
#5
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!
Cevapla
#6
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
WWW
Cevapla
#7
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...
WWW
Cevapla
#8
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.
WWW
Cevapla
#9
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.
Cevapla
#10
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...
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Excel içeri alma Para birimi gonulali 3 845 28-10-2024, Saat: 05:34
Son Yorum: griposter
Question Fastreport - OleObject - Excel Etkileşimde Bulunma YILDIRIMBEY 2 842 05-08-2024, Saat: 12:11
Son Yorum: YILDIRIMBEY
  Fastreport PPTX Export Mikdad 1 535 26-06-2024, Saat: 17:43
Son Yorum: hi_selamlar
  Excel tablosuna resim ekleme enigma 3 1.214 21-05-2024, Saat: 12:16
Son Yorum: enigma
  Delphi Sürekli Adı Değişen Excel Dosyasından Veri Çekme bünyamin68 2 1.387 05-10-2023, Saat: 12:50
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi