2016-03-18 22 views
0

MVC uygulamasında Excel'e veri aktarma konusunda çeşitli yöntemlere bakıyorum.Verileri MVC uygulamasında Excel'e dışa aktarma

  1. Kitaplıkların çoğu, verilerin DataTables içinde depolanmasını gerektirir.

  2. Verilerim, bir Görünüm'den erişmek için bir modele aktarılmış. Bu modeli bir denetleyiciye geri aktaramayacaksınız.

  3. JavaScript, html tablosu olarak değil, salt bir Excel dosyası olarak dışa aktarılıyorsa bir seçenektir.

Şu anda, çıkış dosyası olacak System.IO.File.WriteAllText bir dize oluşturmak ve kullanmak için tekrar sorgular çalışacak bir işlev arıyorum. Sorguları tekrar çalıştırmak için veritabanını çağırmak zorunda olduğumdan bu şekilde tercih etmiyorum (halihazırda View'de bir modelde ihtiyacım olan tüm veriye sahibim) ve yolun kodu kodlanmışsa, Save Dialog'u pop etmek istiyorum yukarı.

Bunu yapmanın daha iyi bir yolu var mı?

Aşağıda iki yoldan nasıl biri olurdu

:

  1. geri kontrolöre adlı veri aktarmak için bir "hile" Bul, belki TempData nasılsa görünümünde kullanılabilir? Saf bir Excel üretecek
  2. JavaScript (.xlsx)

    List<type> record = GetRecords(); 
    
    StringBuilder sb = new StringBuilder(); 
    
    sb.AppendLine("Data 1, Data 2, Data 3, Data 4"); 
    
    foreach (var item in record) 
    { 
        sb.AppendFormat("{0},{1},{2},{3},{4}\n", item.1, item.2, item.3, item.4); 
    } 
    
    System.IO.File.WriteAllText("myfile.csv", sb.ToString()); 
    
+0

js-xlsx (https://github.com/SheetJS/js-xlsx), saf bir xlsx dosyası oluşturabilen javascript kitaplığıdır. Bu sana yardım eder mi? – wwv

+0

Ben aşağıda ile gittim. Teşekkürler – Unrecognized

cevap

1

Sen EPPlus gibi bir kütüphane kullanabilirsiniz dosya. Excel dosyaları tamamen XML ile oluşturulabilir. Biçim OpenXML'dir. Tek başına çalışmak çok eğlenceli değil, ama bu kütüphane onu yönetilebilir kılıyor. XML dosyasını talep üzerine oluşturabilir ve ardından cevaba göre aktarabilirsiniz, böylece kullanıcının bakış açısından bir Excel dosyası indirilir. Bağlantılı sayfa, bir veri kaynağından (bu durumda bir DataTable) nasıl başlayacağını gösterir, elektronik tabloyu oluşturur ve bunu bir HttpResponse'ye ekler. Çok çalışma sayfası olan formüller ve hatta çalışma kitaplarıyla çalışma sayfaları oluşturabilirsiniz.

+0

Bu verileri Excel'de düzenlemek ve sunucuya geri göndermeye devam etmek istiyorsanız, Excel'de yönetmeniz gereken bir şey var. Kolay olmazdı. E-tabloda, düzenlemeler yapıldıktan sonra sunucuya geri gönderilecek kodun çalıştırılmasına ihtiyacınız var. Sunucunun daha fazla Excel ile yanıt vermesini istemezsiniz, çünkü her seferinde indirmek için yepyeni bir e-tablonuz olur. E-tabloyu düzenlemelerini ve tüm dosyayı geri göndermelerini ve daha sonra bunları ayrıştırmalarını sağlayabilirsiniz. Ama ben sadece tarayıcıda bunu yapmak daha kolay olacağını düşünüyorum. –

İlgili konular