Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Excelden veri çekerken lisans uyarısı
#1
Merhaba;

Exceli açtığımız zaman etkinleştirme sihirbazı çıkıyorsa exceldeki veriyi çekerken 'Arama aranan tarafından kabul edilmedi' şeklinde hata mesajı ile karşılaşıyoruz. bu hatadan dolayı kayıtların bir kısmı çekilemiyor. bu hatayı delphi den devre dışı bırakmanın yada hatayı atlamanın bir yolu varmıdır.

verileri çekerken component kullanmıyorum. bir kodlama var onu kullanıyorum.
Cevapla
#2
(21-09-2022, Saat: 22:50)akuyumcu63 Adlı Kullanıcıdan Alıntı: Merhaba;

Exceli açtığımız zaman etkinleştirme sihirbazı çıkıyorsa exceldeki veriyi çekerken 'Arama aranan tarafından kabul edilmedi' şeklinde hata mesajı ile karşılaşıyoruz. bu hatadan dolayı kayıtların bir kısmı çekilemiyor. bu hatayı delphi den devre dışı bırakmanın yada hatayı atlamanın bir yolu varmıdır.

verileri çekerken component kullanmıyorum. bir kodlama var onu kullanıyorum.

Galiba Office programınızın lisans süresi dolmuş ondan veriyor olsa gerek o hatayı.
Faydalanılmayan bilgi, harcanmayan ve hiç kimseye hayrı dokunmayan define gibidir.

Hz. Muhammed (sav.)
Cevapla
#3
(21-09-2022, Saat: 23:15)KUNTAY Adlı Kullanıcıdan Alıntı:
(21-09-2022, Saat: 22:50)akuyumcu63 Adlı Kullanıcıdan Alıntı: Merhaba;

Exceli açtığımız zaman etkinleştirme sihirbazı çıkıyorsa exceldeki veriyi çekerken 'Arama aranan tarafından kabul edilmedi' şeklinde hata mesajı ile karşılaşıyoruz. bu hatadan dolayı kayıtların bir kısmı çekilemiyor. bu hatayı delphi den devre dışı bırakmanın yada hatayı atlamanın bir yolu varmıdır.

verileri çekerken component kullanmıyorum. bir kodlama var onu kullanıyorum.

Galiba Office programınızın lisans süresi dolmuş ondan veriyor olsa gerek o hatayı.

evet lisans dan dolayı veriyor. bunu biliyorum. bu sorunu aşmanın lisans alma dışında bir yolu var mı.
Cevapla
#4
Excelden data çekerken windows da ki Ofis API lerini yani dll lerini kullanır. Eğer excel yüklü değil, hatalı yüklü veya lisans konusunda problemler var ise; Delphi de de bu problemi görürsünüz.

Malesef ki lisans sorununu aşmadan excel OLE'sini kullanamazsınız diye biliyorum.
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#5
(21-09-2022, Saat: 22:50)akuyumcu63 Adlı Kullanıcıdan Alıntı: Merhaba;

Exceli açtığımız zaman etkinleştirme sihirbazı çıkıyorsa exceldeki veriyi çekerken 'Arama aranan tarafından kabul edilmedi' şeklinde hata mesajı ile karşılaşıyoruz. bu hatadan dolayı kayıtların bir kısmı çekilemiyor. bu hatayı delphi den devre dışı bırakmanın yada hatayı atlamanın bir yolu varmıdır.

verileri çekerken component kullanmıyorum. bir kodlama var onu kullanıyorum.

Delphi'yle yazılmış bir bileşen kullanırsanız bu sorun ortadan kalkar. Native Excel bileşeni bu konuda oldukça iyidir, üstelik çok ta hızlıdır, tavsiye ederim.
Cevapla
#6
(22-09-2022, Saat: 21:48)mustafaozpinar Adlı Kullanıcıdan Alıntı:
(21-09-2022, Saat: 22:50)akuyumcu63 Adlı Kullanıcıdan Alıntı: Merhaba;

Exceli açtığımız zaman etkinleştirme sihirbazı çıkıyorsa exceldeki veriyi çekerken 'Arama aranan tarafından kabul edilmedi' şeklinde hata mesajı ile karşılaşıyoruz. bu hatadan dolayı kayıtların bir kısmı çekilemiyor. bu hatayı delphi den devre dışı bırakmanın yada hatayı atlamanın bir yolu varmıdır.

verileri çekerken component kullanmıyorum. bir kodlama var onu kullanıyorum.

Delphi'yle yazılmış bir bileşen kullanırsanız bu sorun ortadan kalkar. Native Excel bileşeni bu konuda oldukça iyidir, üstelik çok ta hızlıdır, tavsiye ederim.

verdiğiniz linkteki 
NativeExcel3Demo.exe  (10.98 Mb)
bu dosyayı bir türlü indiremedim. eğer sizde varsa link verebilirmisiniz. akuyumcu63@hotmail.com
Cevapla
#7
Başlığınızı görünce (açık kaynak) başka çözüm var mıdır diyerek bir google taraması yaptım, ilginç bir çalışmaya rastladım. 
Kod yapısını adapte edebilirseniz ilginizi çekebileceğiniz düşündüm. Şahsen denemedim

FPSpreadSheet linki 

- vaktiniz ve sabrınız varsa tabii - Lazarus ( free pascal ) kod yapısında olduğundan belki üzerinde çalışmaya değer. Kim bilir belki de buradan ücretli yerli bir Delphi kütüphanesi üreten de çıkar.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#8
(25-09-2022, Saat: 21:30)akuyumcu63 Adlı Kullanıcıdan Alıntı:
(22-09-2022, Saat: 21:48)mustafaozpinar Adlı Kullanıcıdan Alıntı: Delphi'yle yazılmış bir bileşen kullanırsanız bu sorun ortadan kalkar. Native Excel bileşeni bu konuda oldukça iyidir, üstelik çok ta hızlıdır, tavsiye ederim.

verdiğiniz linkteki 
NativeExcel3Demo.exe  (10.98 Mb)
bu dosyayı bir türlü indiremedim. eğer sizde varsa link verebilirmisiniz. akuyumcu63@hotmail.com

Selamlar,
Bir örnek yapıp şuraya yükledim.
Native excel demo
Cevapla
#9
(21-09-2022, Saat: 22:50)thợ kim hoàn63 Adlı Kullanıcıdan Alıntı: Merhaba;

Exceli açtığımız zaman etkinleştirme sihirbazı çıkıyorsa exceldeki veriyi çekerken 'Arama aranan tarafından kabul edilmedi' şeklinde hata mesajı ile karşılaşıyoruz. bu hatadan dolayı kayıtların bir kısmı çekilemiyor. bu hatayı delphi den devre dışı bırakmanın yada hatayı atlamanın bir yolu varmıdır.

verileri çekerken component kullanmıyorum. bir kodlama var onu kullanıyorum.

There are many examples of excel automation using delphi.
1- Import Excel, Office, ... Type Library (Excel_TLB.pas)  and see it change for each Excel version in Excel_TBL.pas file
(e.g:  // Hint: Symbol 'Application' renamed to 'ExcelApplication' )
2- Add Excel_TBL, Office_TBL as below
//--------------------------------------------------------------------------------------------------------------------------------
interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Excel_TBL, Office_TBL;
//--------------------------------------------------------------------------------------------------------------------------------
and ComObj; as below
//--------------------------------------------------------------------------------------------------------------------------------
implementation

{$R *.dfm}
uses
ComObj;
//--------------------------------------------------------------------------------------------------------------------------------
Please google search: delphi + excel + Automation + Charlie Calvert.
There are two different ways to run OLE automation from inside Delphi:
You can create an instance of the object in these two different ways:

XLApp := Excel_TLB.CoApplication_.Create; // Initialize an interface

XLApp := CreateOleObject('Excel.Application'); // Initialize a Variant

One involves using interfaces, while the second involves using an OLE class called IDispatch along with a Delphi type called a variant. Interfaces give you the advantage of type checking your code on the client side, as well as relatively high performance. However, I am going to start the paper working with the somewhat easier to understand IDispatch and variants technology, and move on to cover interfaces after all the basics are clearly established. Do not worry if you don't yet understand the differences between the two techniques, as this subject will be cleared up over the course of the paper. At this stage, you just need to be aware that there are at least two ways to access OLE automation objects from Delphi, and that I am going to start out by showing you one that uses IDispatch and variants.

The following code, found in Listing 1, shows a bare bones example of a Delphi application that launches Excel. Just skim over the code for now, as I will spend the rest of this section of the paper explaining how it works.


Ek Dosyalar
.zip   examples.zip (Dosya Boyutu: 188,29 KB / İndirme Sayısı: 7)
.zip   Excel_Delphi-master.zip (Dosya Boyutu: 1,07 MB / İndirme Sayısı: 12)
Cevapla
#10
(26-09-2022, Saat: 18:12)Master_Crazy Adlı Kullanıcıdan Alıntı:
(21-09-2022, Saat: 22:50)thợ kim hoàn63 Adlı Kullanıcıdan Alıntı: Merhaba;

Exceli açtığımız zaman etkinleştirme sihirbazı çıkıyorsa exceldeki veriyi çekerken 'Arama aranan tarafından kabul edilmedi' şeklinde hata mesajı ile karşılaşıyoruz. bu hatadan dolayı kayıtların bir kısmı çekilemiyor. bu hatayı delphi den devre dışı bırakmanın yada hatayı atlamanın bir yolu varmıdır.

verileri çekerken component kullanmıyorum. bir kodlama var onu kullanıyorum.

There are many examples of excel automation using delphi.
1- Import Excel, Office, ... Type Library (Excel_TLB.pas)  and see it change for each Excel version in Excel_TBL.pas file
(e.g:  //   Hint: Symbol 'Application' renamed to 'ExcelApplication' )
2- Add Excel_TBL, Office_TBL as below
//--------------------------------------------------------------------------------------------------------------------------------
interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Excel_TBL, Office_TBL;
//--------------------------------------------------------------------------------------------------------------------------------
and ComObj; as below
//--------------------------------------------------------------------------------------------------------------------------------
implementation

{$R *.dfm}
uses
   ComObj;
//--------------------------------------------------------------------------------------------------------------------------------
Please google search: delphi + excel + Automation + Charlie Calvert.
There are two different ways to run OLE automation from inside Delphi:
You can create an instance of the object in these two different ways:

XLApp := Excel_TLB.CoApplication_.Create; // Initialize an interface

XLApp := CreateOleObject('Excel.Application'); // Initialize a Variant

One involves using interfaces, while the second involves using an OLE class called IDispatch along with a Delphi type called a variant. Interfaces give you the advantage of type checking your code on the client side, as well as relatively high performance. However, I am going to start the paper working with the somewhat easier to understand IDispatch and variants technology, and move on to cover interfaces after all the basics are clearly established. Do not worry if you don't yet understand the differences between the two techniques, as this subject will be cleared up over the course of the paper. At this stage, you just need to be aware that there are at least two ways to access OLE automation objects from Delphi, and that I am going to start out by showing you one that uses IDispatch and variants.

The following code, found in Listing 1, shows a bare bones example of a Delphi application that launches Excel. Just skim over the code for now, as I will spend the rest of this section of the paper explaining how it works.


 var
 EXCELDOSYASI: Variant;               /// EXCEL DOSYASI İLE İŞLEM YAPMAK İÇİN TANIMLANIYOR
 KACSATIR,KACSUTUN:integer; /// EXCELDEBİLGİSAYISI ADLI PROCEDUR KAÇ SATIR BİLGİ OLDUĞUNU BU DEĞİŞKENLERE GÖNDERECEK

 const
 SELDIRHELP = 1000;

 implementation

{$R *.dfm}
procedure exceldebilgisayisi;
var
hangisatirdaverivar:variant;
begin
 try
 KACSATIR:=0; // BU DEĞİŞKENLERDEKİ DEĞERLERİ SIFIRLAYALIM Kİ TEKRAR ÇAĞIRILDIĞINDA ÜZERİNE EKLESİN
 KACSUTUN:=0; // BU DEĞİŞKENLERDEKİ DEĞERLERİ SIFIRLAYALIM Kİ TEKRAR ÇAĞIRILDIĞINDA ÜZERİNE EKLESİN
 hangisatirdaverivar:= EXCELDOSYASI.ActiveWorkbook.worksheets[1].UsedRange; // veri çalışma kitabı 1 deki hangi satırlarda ve sütünlarda var buluyor
 KACSATIR:= hangisatirdaverivar.rows.Count; /// kaç satır bilgi olduğunu rakamsal olarak buluyor.
 KACSUTUN:= hangisatirdaverivar.columns.Count; // kaç kolonda bilgi olduğunu rakamsal olarak buluyor.
 except
 end;
end;



procedure btnolcucekClick(Sender: TObject);
var EXCELDEKISATIR,EXCELDEKISUTUN:Integer;
SAYFA: Variant;
begin
OpenDialog1.FileName:='c:\\exceldosyasi.xlsx';
//if OpenDialog1.Execute then
//  begin
 EXCELDOSYASI:=CreateOleObject('excel.application');
 EXCELDOSYASI.Visible:=false;
   try
   EXCELDOSYASI.workbooks.open[OpenDialog1.FileName];
   exceldebilgisayisi;
   for EXCELDEKISATIR:=1 to KACSATIR do
     begin
     data.Append;
     dataadi.AsString:= (exceldosyasi.ActiveSheet.Cells[EXCELDEKISATIR,1].Value);
     datasoyadi.AsString:= (exceldosyasi.ActiveSheet.Cells[EXCELDEKISATIR,2].Value);
     data.Post;
     end;
     end;
   finally
   if not VarIsEmpty(EXCELDOSYASI) then
    begin
    EXCELDOSYASI.DisplayAlerts := False;
    EXCELDOSYASI.Quit;
    EXCELDOSYASI := Unassigned;
    end;
   end;
 end;


Herhangi bir versiyon problemi olmadan kullanıyorum. Deneyin lütfen.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  IEC 61850 Potokolünden veri alma shooterman 1 413 14-03-2024, Saat: 11:38
Son Yorum: shooterman
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 15 618 08-03-2024, Saat: 00:06
Son Yorum: TuncayDelphi
  Problem - ZKTeco Cihazlardan Anlık Veri Alma mad85 16 7.951 25-12-2023, Saat: 11:35
Son Yorum: osiso
  Cas Terazi Veri gönderimi Delphi sürüm sorunu KUNTAY 12 4.300 08-11-2023, Saat: 00:06
Son Yorum: berkan
  Delphi Sürekli Adı Değişen Excel Dosyasından Veri Çekme bünyamin68 2 556 05-10-2023, Saat: 12:50
Son Yorum: mcuyan



Konuyu Okuyanlar: 2 Ziyaretçi