2012-09-11 9 views
9

Elimde ihracat yapmak istediğim bir jilet görünüm var.Dışa aktarma görünümü stili kaybetmeden ustura ile excel'e dön

bunu yapmak için bana göre bu hattı kullanıyorum: Bu satır yorum yaparken

Response.AddHeader("Content-Type", "application/vnd.ms-excel");  

, istediğim tarzı ile görünümünü görebilirsiniz. Unuttuğumda ve sorduğumda, tarayıcı Excel dosyasını gerektiği gibi indirmemi ister. Ama sorun dosyayı açtığınızda, ben sayfayı görüntülemek için kullanıyorum css olan bu hatayı

Missing file c:\scrips\excel.css 

olsun.

Dosyayı düzeni ile nasıl kaydedebilirim?

+1

Ya gerçek bir Excel dosyasını sunmanız gerekecek ya da sadece bir HTML tablosu gönderiyorsanız, stilleri HTML'yi bağlamadan ziyade ekleyin. –

cevap

15

Muhtemelen ayrı bir "İHRACAT" görünümü oluşturmanız gerekecektir. Bu, kendi denetleyicisi olan Action ve View'un kendisi anlamına gelir. Görünüm, ortaya çıkan Excel dosyasının nasıl görünmesini istediğinizle aynı olmalıdır. Bağımsız olmalı. Düzen yok ve css'yi içeren stil etiketi (stillerin/betiklerin/bağlantıların bağlanması yok).

Bir Controller denilen "Ev" kullandığınızı varsayalım:

Burada basit bir örnek. HomeController içindeki

Eylem:

public ActionResult Export() 
{ 
    Response.AddHeader("Content-Type", "application/vnd.ms-excel"); 
    return View(); 
} 

Görünüm (Ev \ Export.cshtml): Bu sayfayı yüklemek kez

@{ 
    Layout = ""; 
} 
<style type="text/css"> 
    body {font-family: Tahoma;} 
    h2 {color:red} 
    table {border:1px solid black; border-spacing:0} 
    td {color:green; font-size:.8em; padding:5px} 
    .heading {background:#ccc} 
</style> 

<h2>Test</h2> 

<table> 
    <tr class="heading"> 
     <th>Name</th> 
     <th>Age</th> 
    </tr> 
    <tr> 
     <td>Test1</td> 
     <td>15</td> 
    </tr> 
    <tr> 
     <td>Test2</td> 
     <td>16</td> 
    </tr> 
</table> 

, bir indirme kutusu ile açılır edeceğiz ve uygun stillerle excel içinde açılır.

+0

Çalıştı, teşekkürler. – kbaccouche

1

Denetleyicinizin, Excel dosyasını içeren bir web sayfası değil, Excel dosyasına hizmet eden bir eylemi olmalıdır. Denetleyici eylemi gibi bir şey olmalıdır.

public ActionResult Export() 
{ 
    byte[] doc = GetExcelFileSomehow(); 
    var file = File(doc, "application/vnd.ms-excel"); 
    file.FileDownloadName = "MyFile.xlsx"; 
    return file; 
} 
+0

Ama benim görüşüme göre denetleyiciden veri topladım ve bunlar üzerinde istatistik yapıyorum. Aynısını bir Excel dosyası ile yapabilir miyim? – kbaccouche

+0

@the_ruby_racer Evet, Excel dosyasını dinamik olarak oluşturmak için EPPlus gibi bir kitaplık kullanın. –

İlgili konular