FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

Excel'den Değişken Data Inserti

+1 oy
856 kez görüntülendi
Excel'de daha önce hazırladığım bir makro var yalnız çok yavaş olduğu için FM de yapmak istiyorum.

Excel'de bulunan tablo ilk sütundaki kişi bilgisine göre o kişiyle ilişkili satırları filtreleyip küçük exceller kaydedip sonra ilgili kişilerin mail adreslerine otomatik mail atıyorum. Mail eklerindeki exceller ilgili kişiye göre şekilleniyor.

Diyelim ki excelde 500 satır var. Bunlardan 5 tanesi A kişisine, 3 tanesi B kişisine ait...

Her kişi için sadece kendiyle ilgili satırları içeren birer excel kaydeder ve mail ile gönderir. Fakat buradaki sorun excel tablo dinamik, her zaman aynı içerikte olamayabilir. Excel tablo dinamik olduğu için datayı okuyacağım table ı önceden tasarlayamıyorum. Bu sebeple excelden data importunda yeni tablo olarak kaydet seçeneğini scriptte kullanmaya çalıştım fakat bu defa da table adına müdahale edemediğim için scriptler ile üzerinde oynama yapamıyorum.

Yardımcı olabilir misiniz.
16, Ocak, 2017 Database kategorisinde InDusTry (27,130 puan) tarafından soruldu

2 Cevaplar

+1 oy
Exceldeki veriler dinamik derken kolonlar da değişebiliyor dimi?

 

Şöyle bir çözüm olabilir belki, excelin berlili bir kolonu, örneğin A kolonu, hep eposta adresi barındırdığını varsayalım.

 

Exceldeki verileri geçici olarak depolayacağımız bir tablomuz olsun. Alanlar ise eposta, alan1, alan2, alan3 ... şeklinde olabilecek en fazla sayıda alanı barındırsın. Hep aynı tabloya verileri çekelim, içeri çerkerken 1 satırı (kolon isimlerini de alsın). Kayıtları export ederken alan başlıklarını kaydet seçeneği aktif olmasın, bu sayede excel çıktısında alan1, alan2 vs isimler gözükmez.
17, Ocak, 2017 F. Osman Cabi (197,920 puan) tarafından cevaplandı
Evet kolonlar değişken olacak. İşi zora sokan da bu maalesef. Kullanıcıya maksimum kolon sayısı gibi bir kısıt vermek istemiyorum. o zaman excelin sahip olduğu kolon sayısı kadar field açarsam olabilir belki.

Kafama takılan husus diyelim bu şekilde yaptım, ilgili excelleri script ile oluştururken FM sahip olduğu tüm kolonları eklemek isteyecek midir? sonrasında sağ tarafta tanımlı fakat boş kolonlar sebebiyle data boyutu büyür mü bilemedim. Deneyip görmek lazım :)
satır sayısı fazlaysa oluşturulan excellerin dosya boyutu biraz büyüyebilir. ama xlsx formatı ne iyi ki zip dosyası, bu da dosya boyutunu oldukça küçültüyor.


sınırsız kolon sayısı için dosyayı text formatında kaydettirip tek bir kolona import edilebilir. export yaparken de xml&xls kaydederek istenilen excel dosyası oluşturması sağlanabilir ama pratik bir işlem değil. Fayda/maliyet oranını inceleyip böyle bir şey yapıp yapmama konusunda karar vermek gerekir.
0 oy

Filemaker dan Excel in istediğiniz alanına veri aktarmanın birden fazla yöntemi var.

1- XSLT(Extensible Stylesheet Language Transformations, Genişletilebilir Biçimlendirme Dili Dönüşümleri), XML tabanlı, XML dokümanlarını dönüştürmek için kullanılan bir dildir. Yani Fİlemakerdan XMLe ordan da XSLT formatına dönüşüm,  sonrada excel aktarım.  Biraz zorlama ve can sıkıcı.

2- Verileri Filemaker'dan Excel'e aktarmak sonrada Excel'den Excel'e veri çekmek bir çözüm. Bunu uyguladım, Güzel çalışıyor ama her seferinde iki dosya üretilmesi sıkıntı.

3- DOS yanı CMD Command line komutu ile excele, eskiden veri atardık. Filemaker Send DDE Execute [Service Name: "excel"; Topic: "system"; Commands: ""] Servis Name "excel", Topic: "Excel in yolu" Commands ise Komutun excel ile etkileşimini sağlayacaktır. Bunu akşama çalışıp bir örnek yükleyeceğim. Yada bir arkadaşımız buna benzer bir aktarımı halletmişti. Okursa ondan beklemek daha iyi olur ben uğraşmamış olurum.

Excel toplu aktarım 2 madde de mükemmel oluyor. Yalnız 1 ve 3 üncü maddelerde biraz sıkıntı ama var. Direk aktarım söz konusu değil. 1 madde de substitute 3 maddede de Osman Beyin dediği gibi tüm alanları tek bir text metinde veya Filemakerın bir alanında toplamaktır. Dikkat edeceğiniz unsur; Her Field metinini set ederken Aralarına TAB ile boşluk bırakmanız gerekecektir. yoksa tüm datayı excel in bir alanına yazarsınız. Excel kelimeler arasında TAB i görünce kelimeleri sutun sutun ayırır.

17, Ocak, 2017 Mehmet KAYA (165,360 puan) tarafından cevaplandı
...