14 Ağustos 2014 Perşembe

Javascript HTML Tabloyu Excel'e Aktarma (Javascript Export HTML Table to Excel)

(English)

When export HTML table to excel there will be some problems:

- Display CSS styles in excel
- Special characters problem (this example for Turkish characters)

For displaying CSS styles in excel, styles must be inline in HTML codes.

Example:

<table>
<tr>
<td style="background-color:red;">row 1 - column 1</td>
<td>row 1 - column 2</td>
</tr>
<tr>
<td>row 2 - column 1</td>
<td>row 2 - column 2</td>
</tr>
</table>

The best way to solve charset problem (special characters) is replacing characters one by one. This process is very easy and editable.

 Example (For Turkish characters):

while (html.indexOf('ç') != -1) html = html.replace('ç', '&ccedil;');
while (html.indexOf('ğ') != -1) html = html.replace('ğ', '&#287;');
while (html.indexOf('ı') != -1) html = html.replace('ı', '&#305;');
while (html.indexOf('ö') != -1) html = html.replace('ö', '&ouml;');
while (html.indexOf('ş') != -1) html = html.replace('ş', '&#351;');
while (html.indexOf('ü') != -1) html = html.replace('ü', '&uuml;');

while (html.indexOf('Ç') != -1) html = html.replace('Ç', '&Ccedil;');
while (html.indexOf('Ğ') != -1) html = html.replace('Ğ', '&#286;');
while (html.indexOf('İ') != -1) html = html.replace('İ', '&#304;');
while (html.indexOf('Ö') != -1) html = html.replace('Ö', '&Ouml;');
while (html.indexOf('Ş') != -1) html = html.replace('Ş', '&#350;');
while (html.indexOf('Ü') != -1) html = html.replace('Ü', '&Uuml;');

To find out other languages' special characters follow this link: http://www.thesauruslex.com/typo/eng/enghtml.htm

 All process is here:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" charset='UTF-8'>
<script type="text/javascript">

function exportExcel() {
     var tableExport = document.getElementById('tableExport');
     var html = tableExport.outerHTML;

     while (html.indexOf('ç') != -1) html = html.replace('ç', '&ccedil;');
     while (html.indexOf('ğ') != -1) html = html.replace('ğ', '&#287;');
     while (html.indexOf('ı') != -1) html = html.replace('ı', '&#305;');
     while (html.indexOf('ö') != -1) html = html.replace('ö', '&ouml;');
     while (html.indexOf('ş') != -1) html = html.replace('ş', '&#351;');
     while (html.indexOf('ü') != -1) html = html.replace('ü', '&uuml;');

     while (html.indexOf('Ç') != -1) html = html.replace('Ç', '&Ccedil;');
     while (html.indexOf('Ğ') != -1) html = html.replace('Ğ', '&#286;');
     while (html.indexOf('İ') != -1) html = html.replace('İ', '&#304;');
     while (html.indexOf('Ö') != -1) html = html.replace('Ö', '&Ouml;');
     while (html.indexOf('Ş') != -1) html = html.replace('Ş', '&#350;');
     while (html.indexOf('Ü') != -1) html = html.replace('Ü', '&Uuml;');

     window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html));
}

</script>
</head>
<body>
<button id="btnExport" onclick="exportExcel();">Export to Excel</button>
<table id="tableExport">
<tr>
<td style="background-color:red;">row 1 - column 1</td>
<td>row 1 - column 2 Ç窺ÖöÜüİiĞğ </td>
</tr>
<tr>
<td>row 2 - column 1</td>
<td>row 2 - column 2</td>
</tr>
</table>
</body>
</html>
-----------------------------------------

(Türkçe)

HTML tablosunu Excel'e aktarırken karşılaşılan belli başlı birtakım sorunlar vardır:

- CSS stillerini aktarma
- Karakter sorunu (Örneğin: Türçe karakterler)

CSS stillerini Excel'e aktarmak için yazılan stillerin HTML kodları içine gömülü olması gerekir. Yani HEAD tag'leri arasına ya da ayrı bir dosyaya yazdığınız CSS stillerini görmemektedir.

Örneğin:

<table>
<tr>
<td style="background-color:red;">row 1 - column 1</td>
<td>row 1 - column 2</td>
</tr>
<tr>
<td>row 2 - column 1</td>
<td>row 2 - column 2</td>
</tr>
</table>

Karakter sorunu için de en iyi yol karakterleri tek tek değiştirmektir. Tek tek değiştirmek gözünüze zor gibi görünebilir fakat gayet kolay bir işlemdir.

Örneğin: (Türkçe karakterler için)

while (html.indexOf('ç') != -1) html = html.replace('ç', '&ccedil;');
while (html.indexOf('ğ') != -1) html = html.replace('ğ', '&#287;');
while (html.indexOf('ı') != -1) html = html.replace('ı', '&#305;');
while (html.indexOf('ö') != -1) html = html.replace('ö', '&ouml;');
while (html.indexOf('ş') != -1) html = html.replace('ş', '&#351;');
while (html.indexOf('ü') != -1) html = html.replace('ü', '&uuml;');

while (html.indexOf('Ç') != -1) html = html.replace('Ç', '&Ccedil;');
while (html.indexOf('Ğ') != -1) html = html.replace('Ğ', '&#286;');
while (html.indexOf('İ') != -1) html = html.replace('İ', '&#304;');
while (html.indexOf('Ö') != -1) html = html.replace('Ö', '&Ouml;');
while (html.indexOf('Ş') != -1) html = html.replace('Ş', '&#350;');
while (html.indexOf('Ü') != -1) html = html.replace('Ü', '&Uuml;');

diğer dillere ilişkin karakter kodlarının ne olduğunu öğrenmek için şu bağlantıya göz atabilirsiniz: http://www.thesauruslex.com/typo/eng/enghtml.htm

Son olarak bunların tamamını içeren kod aşağıdadır:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" charset='UTF-8'>
<script type="text/javascript">

function exportExcel() {
     var tableExport = document.getElementById('tableExport');
     var html = tableExport.outerHTML;

     while (html.indexOf('ç') != -1) html = html.replace('ç', '&ccedil;');
     while (html.indexOf('ğ') != -1) html = html.replace('ğ', '&#287;');
     while (html.indexOf('ı') != -1) html = html.replace('ı', '&#305;');
     while (html.indexOf('ö') != -1) html = html.replace('ö', '&ouml;');
     while (html.indexOf('ş') != -1) html = html.replace('ş', '&#351;');
     while (html.indexOf('ü') != -1) html = html.replace('ü', '&uuml;');

     while (html.indexOf('Ç') != -1) html = html.replace('Ç', '&Ccedil;');
     while (html.indexOf('Ğ') != -1) html = html.replace('Ğ', '&#286;');
     while (html.indexOf('İ') != -1) html = html.replace('İ', '&#304;');
     while (html.indexOf('Ö') != -1) html = html.replace('Ö', '&Ouml;');
     while (html.indexOf('Ş') != -1) html = html.replace('Ş', '&#350;');
     while (html.indexOf('Ü') != -1) html = html.replace('Ü', '&Uuml;');

     window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html));
}

</script>
</head>
<body>
<button id="btnExport" onclick="exportExcel();">Excel'e Aktar</button>
<table id="tableExport">
<tr>
<td style="background-color:red;">satır 1 - kolon 1</td>
<td>satır 1 - kolon 2 Ç窺ÖöÜüİiĞğ </td>
</tr>
<tr>
<td>satır 2 - kolon 1</td>
<td>satır 2 - kolon 2</td>
</tr>
</table>
</body>
</html>

8 Ekim 2013 Salı

Android Advertising Companies (Android Reklam Firmaları) - StartApp

Android Reklam Firmaları - StartApp

StartApp, android uygulamalar için bilinen ve güvenilir bir reklam firmasıdır. Google son reklam politikası değişikliklerinden sonra StartApp firması da reklam tiplerinde değişikliğe giderek yeni SDK larını yayınlamıştır. Bu SDK'ları indirip uygulamalarınıza entegre etmek için StartApp'a üye olup , uygulamanızı sisteme tanıtmanız gerekmektedir.

StartApp'ın geliştiricilere ödediği reklam ücretlerini şu linkten görüntüleyebilirsiniz

StartApp'a herhangi bir geliştirici referansı ile üye olduğunuzda ilk 1000 downloaddan için ekstra 15$ kazanabilirsiniz. Referansımdan üye olmak için tıklayınız


26 Mart 2013 Salı

OpenCV Visual Studio Kurulumu (VS2012,VS2010,VS2008)

1) Visual Studio'nuza OpenCV kütüphanesini kurmak için öncelikle http://opencv.org/downloads.html adresinden istediğiniz OpenCV versiyonunu indirin.

2) İndirdiğiniz dosyayı C:/ klasörü altına çıkarın.


3) Computer(Sağ tık) / Properties / Advanced System Settings / Environment Variables kısmına girip System Variables altında Path değişkenini seçip Edit butonuna tıklayın.











Değişkenin en sonuna, noktalı virgül koyup, OpenCV'yi çıkarttığınız yerdeki dosya içerisindeki sırasıyla opencv\build\x64\vc10\bin yolunu ekleyin. Sonuç olarak şöyle birşey eklemiş olacaksınız:

C:\opencv\build\x64\vc9\bin (64bit sistem, VS2008 için)
C:\opencv\build\x64\vc10\bin (64bit sistem, VS2010 için)
C:\opencv\build\x64\vc11\bin (64bit sistem, VS2012 için)
C:\opencv\build\x86\vc9\bin (32bit sistem, VS2008 için)
C:\opencv\build\x86\vc10\bin (32bit sistem, VS2010 için)
C:\opencv\build\x86\vc11\bin (32bit sistem, VS2012 için)



4) Visual Studio içinden Win32 Console Application oluşturun (File/New Project/Visual C++/Win32 Console Application)

5) Solution Explorer'da oluşturduğunuz projenin ismine sağ tıklayıp Properties 'i açın



Sisteminiz 32bit'se bir sonraki aşamaya geçin.
Sisteminiz 64bit'se sağ üstteki Configuration Manager butonuna tıklayın.Alttaki Platform kısmında default olarak Win32 seçilidir. Onu x64 yapmak için sağ üstteki Active Solution Platform kısmına tıklayıp New'i seçin. İlk boşluğa x64 yazın. Ok'e basın. Sonra Platform kısmından default olarak seçili gelen Win32'yi x64 yapın. Buradaki Configuration kısmının da Release ya da Debug olduğuna dikkat edin. İlerideki bir aşamada Release ya da Debug olmasına göre farklı yol izleyeceğiz.





6) Proje ismine sağ tıkladıktan sonra Configuration Properties altında C/C++ -> General -> Additional Include Directories kısmına C:\opencv\build\include yazın.



7) Yine Configuration Properties altında Linker -> General -> Additional Library Directories kısmına C:\opencv\build\x64\vc10\lib yazın. Burada önemli olan nokta 3. adımda yaptığımız gibi sistemimizin özelliğine ve visual studio türüne göre doru olanı yazmak. Sonuç olarak şunlardan birini eklemiş olacaksınız:


C:\opencv\build\x64\vc9\lib (64bit sistem, VS2008 için)
C:\opencv\build\x64\vc10\lib (64bit sistem, VS2010 için)
C:\opencv\build\x64\vc11\lib (64bit sistem, VS2012 için)
C:\opencv\build\x86\vc9\lib (32bit sistem, VS2008 için)
C:\opencv\build\x86\vc10\lib (32bit sistem, VS2010 için)
C:\opencv\build\x86\vc11\lib (32bit sistem, VS2012 için)



8) En dikkat edilmesi gereken kısım burası. Configuration Properties altında Linker -> Input -> Additional Dependencies kısmına tıklayıp <Edit> deyin. Açılan küçük pencereye eklemek istediğimiz kütüphaneleri(.lib uzantılı dosyaları) ekleyeceğiz. 5. adımda Release ya da Debug olmasına dikkat edin demiştim. Eğer o adımda Debug yaptıysanız ---d.lib şeklindeki dosyaları, Release yaptıysanız ---.lib şeklindeki dosyaları ekleyeceksiniz. Eğer önce Debug yapıp sonradan Release yapmak ya da tersini yapmak isterseniz bu kısmı da doğru olanlarıyla değiştirmelisiniz. Buraya ekleyeceğimiz dosyalar; bir önceki adımdaki path(C:\opencv\build\x64\vc10\lib) içerisindeki dosyalardır. O path içerisindeki bütün dosyaları açılan küçük pencereye eksiksiz ekleyiniz. Burada OpenCV'nin 2.4.4 sürümüne uygun olanları yazacağım. Kopyala yapıştır yapabilirsiniz fakat değişik sürümler için kopyala yapıştır yaptıktan sonra eksiklik ya da fazlalıkları kontrol etmekte fayda var. Sonuç olarak sorunla karşılaşmamak için lib içerisindeki bütün dosyalar buraya koymalısınız.

Release için ---.lib dosyaları:

opencv_core244.lib
opencv_imgproc244.lib
opencv_highgui244.lib
opencv_ml244.lib
opencv_video244.lib
opencv_features2d244.lib
opencv_calib3d244.lib
opencv_objdetect244.lib
opencv_contrib244.lib
opencv_legacy244.lib
opencv_flann244.lib
opencv_stitching244.lib
opencv_nonfree244.lib

Debug için ---d.lib dosyaları:

opencv_core244d.lib
opencv_imgproc244d.lib
opencv_highgui244d.lib
opencv_ml244d.lib
opencv_video244d.lib
opencv_features2d244d.lib
opencv_calib3d244d.lib
opencv_objdetect244d.lib
opencv_contrib244d.lib
opencv_legacy244d.lib
opencv_flann244d.lib
opencv_stitching244d.lib
opencv_nonfree244d.lib





Bunları yapıştırıp kontrol ettikten sonra Property Pages penceresinden OK deyip çıkabilirsiniz. Artık Visual Studio'nuza OpenCV kütüphanenizi eklemiş bulunmaktasınız.