Kullandığın sunucu taraflı dile göre çeşitli bileşenler, kütüphaneler kullanabilir ya da direk Excel'in anladığı XML biçiminde çıktı üretebilirsin. Bu rada konunun JAVA/JSP ile bağlantısını çözemedim. Sunucunda bu dili mi kullanıyorsun?
Hepinize hayırlı günler arkadaşlar.
Arkadaşlar elimde bir HTML sayfası var ve içinde iç içe geçmiş tablolar divler mevcut. ben bunun kaynagını görüntüle dedikten sonra farklı kaydet seçeneğini seçip xls olarak kaydedip excelde açınca sorun yok ama benim yapmaya çalıştığım kullanıcı bu htm sayfasını tıklayınca direk excel açılsın ve bu tablolar divler bozulmadn gelsin .
2 tane dosya ekledim bir tanesi HTML olarak görüntüsü 2.side excel olarak görüntüsü sanırım ne demek istediğimi anlatabildim. Forumda araştırdım ama bulamadım. Yardımlarınız için şimdiden teşekkürler.
Kullandığın sunucu taraflı dile göre çeşitli bileşenler, kütüphaneler kullanabilir ya da direk Excel'in anladığı XML biçiminde çıktı üretebilirsin. Bu rada konunun JAVA/JSP ile bağlantısını çözemedim. Sunucunda bu dili mi kullanıyorsun?
BYK vakit ayırıp cevap yazdığın için teşekkür ederim.
Olayı ben sana en baştan anlatayım.
web tabanlı bir proje geliştiriyoruz. ASP.net ile.
Projenin içinde kullanıcılar raporlar bastıracaklar ama bu raporlar sürekli MEB tarafından değiştiriliyor yada kurumdan kuruma farklı yapıda raporlar istenebiliyor. Bir kurumun kullandığı raporu diğer bir kurum kullanmıyor. Bizim eski sürüm projemizde bu yüzden proje alakasız şeylerle doldu tastı. Kurum yetkilisinin işine yaramayan ama başka kurum istedi diye projenin içine güncellemelerle dahil ettiğimiz bir ton dosya oldu. Bizde bundan dolayı raporlar kısmında güncellemeyi rapor bazlı olarak yapmayı düşündük. Kurum web sayfamıza girecek ve bana bu rapor lazım diyerekten sadece o raporu kuracak. Raporları bizde ona xsl şeklinde vereceğiz. Yani kurum yetkilisi web sayfaımzdan xsl dosyasını indirecek bunuda programa kurunca mssql databseden XML olarak çektiği verileri xsl deki biçime göre formatlandıracak. Bunlarda sorun yok ama birde kullanıcı sayfayı yazdırmak değilde excele göndermek istiyor. Bizde bunu tekrardan XML ile gelen verileri excelin biçimlendirme formatıyla tekrardan biçimlendirmek yerine (baya bir döngü karşılaştırma var raporlarda) elimizde hazır olan HTML belgesini direk excele aktarmayı düşündük.
İşte tam olarakta sorun burada karşımıza çıkıyor.(JavaScript kısmına bundan dolayı yazdım aklıma Javascriptle okumak geldi ). Ekte göndermiş olduğum dosya ilk tabloyu excele başarılı bir şekilde atıyor zaten JavaScript te döngüyü ona göre kurmuşuz ama o tablonun içinde başka tablolar yada divler olunca excelin içine HTML olarak atıyor.(bunu bu şekildede okumak baya bir kasacak gibime geliyor)
Not: Eke attığım dosyanın uzantısını txt yaptım htm yapıp explorerda açarsanız sorun olmaz. Firefoxta çalışmıyor bilginiz olsun. (Profe sadece excelde çalışacak onun için fierfoz o kadarda önemli değil )
Biraz uzun oldu ama vakit ayırırsan sevinirim. Aklına başka bir yöntem geliyorsa onuda söleyebilirsin belki kulağımı elimi dolandırarak tutmaya çalışıyorum.
bu şekilde JavaScript ile uğraşmanıza gerek yok, kaldı ki js ile browser ayarı yapılmadığı sürece client tarafta hiçbir uygulamaya erişemez.
bunun yerine;
şeklinde denerseniz, doğrudan excel olarak verebilirsiniz.Kod:<% Response.ContentType = "application/vnd.ms-excel" %> <table id="myTable" border="1"> <tr> <b><td>Adı</td></b> <td>Soyadı</td><td>Yaşı</td><td width="221">Şehir</td></tr> <tr> <b><td>1</td></b> <td>1</td><td>21:)</td><td width="221">Kastamonu</td></tr> <tr> <b><td>2</td></b> <td>2</td><td>27</td><td width="221">Sivas</td></tr> <tr> <b><td>3</td></b> <td>3</td><td>19</td><td width="221">Malatya</td></tr> <tr> <b><td>4</td></b> <td>4</td><td>--</td><td width="221">Adıyaman</td></tr> <tr> <b><td>5</td></b> <td>5</td><td>--</td><td width="221">Adıyaman</td></tr> <tr> <b><td>6</td></b> <td>6</td><td>--</td><td width="221"> <table id="nnn" border="1"> <tr> <b><td>Adı</td></b> <td>Soyadı</td><td>Yaşı</td><td>Şehir</td></tr> <tr> <b><td>1</td></b> <td>1</td><td>21:)</td><td>Kastamonu</td></tr> <tr> <b><td>2</td></b> <td>2</td><td>27</td><td>Sivas</td></tr> <tr> <b><td>3</td></b> <td>3</td><td>19</td> <td>Malatya</td></tr> <tr> <b><td>4</td></b> <td>4</td><td>--</td><td>Adıyaman</td></tr> <tr> <b><td>5</td></b> <td>5</td><td>--</td><td>Adıyaman</td></tr> <tr> <b><td>6</td></b> <td>6</td><td>19</td><td>Malatya</td></tr> <tr> <b><td>7</td></b> <td>7</td><td>--</td><td>Adıyaman</td></tr> <tr> <b><td>8</td></b> <td>8</td><td>--</td><td>Adıyaman</td></tr> <tr> <b><td>9</td></b> <td>9</td><td>19</td><td>Malatya</td></tr> <tr> <b><td>10</td></b> <td>10</td><td>--</td><td>Adıyaman</td></tr> <tr> <b><td>11</td></b> <td>11</td><td>--</td><td>Adıyaman</td></tr> </table> </td></tr> </table>
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney
http://www.sipidik.com
İstediğin mantıklı olmakla birlikte JS ile yapılması mümkün değil absconder'in de belirttiği üzere. Eğer popup açıp içerisine XML/xls kodu koyarım, kullanıcı da onu kaydeder diyorsan belki yapılabilir ama bunun yerine ilk söylediğin "farklı kaydet" çözümü daha güzel ve ekonomik.
Ama eğer "yok illa ki olması lazım, ve böyle olması lazım" diyorsan Adobe AIR gibi bir platformun getirdiği ek JS özellikleri ile yapılabilir.
absconder ve BYK hocalarıma cevap yazdıkları için teşekkür ederim.
Ben birazda o zaman Abobe air inceleyim olmadı artık kullanıcı farklı kaydet yapsın. Herşeyi programcılardan beklemesinler di mi?![]()