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

  • dope2111

    dope2111

    29 HAZİRAN 2009
  • RogerBuckChrist

    RogerBuckChr

    9 Temmuz 2011
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012