SORU
19 ŞUBAT 2013, Salı


Nasıl csv (istemci tarafında) JavaScript dizi bilgi vermek için mi?

Bu tür sorular çok var biliyorum ama bu JavaScript kullanarak yapmak istiyorum. Dojo 1.8 kullanıyorum ve bu gibi görünüyor dizideki tüm öznitelik bilgi, var:

[["name1", "city_name1", ...]["name2", "city_name2", ...]]

Bu istemci tarafında aktar nasıl yapabilirim bir fikriniz var mı?

CEVAP
19 ŞUBAT 2013, Salı


Native JavaScript ile bunu yapabilirsiniz. Doğru CSV formatında (soru ifade ettiğiniz gibi, verileri bir dizi bir dizi kullanarak varsayarak) bütün verileri ayrıştırmak gerekecek:

var data = [["name1", "city1", "some other info"], ["name2", "city2", "more info"]];
var csvContent = "data:text/csv;charset=utf-8,";
data.forEach(function(infoArray, index){

   dataString = infoArray.join(",");
   csvContent  = index < data.length ? dataString  "\n" : dataString;

}); 

Sonra window.open JavaScript kullanabilirsiniz ve encodeURI CSV: gibi dosya indirmek için fonksiyonları

var encodedUri = encodeURI(csvContent);
window.open(encodedUri);

Düzenleme:

Eğer dosyanızı belirli bir ad vermek istiyorsanız, bu veri URI window.open yöntemini kullanarak erişim desteklenmiyor beri işler biraz farklı yapmak zorunda. Bunu başarmak için <a> DOM gizli bir düğüm oluşturun ve aşağıdaki gibidir: download özniteliği ayarlayabilirsiniz

var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "my_data.csv");

link.click(); // This will download the data file named "my_data.csv".

Notbu düzenleme, download öznitelik desteği sadece Chrome ile sınırlıdır. FF uygulama sürecinde olduğuna inanıyorum, ve IE her zaman arkalarında her ikisi de kalıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Developers

    Android Deve

    9 Kasım 2007
  • Awesome Toys TV

    Awesome Toys

    18 HAZİRAN 2014
  • TheDamnWreckless

    TheDamnWreck

    12 Temmuz 2010