2017-05-28 9 views
0

私はASP.NET MVCのエキスパートではありませんが、私は小さなプロジェクトを処理する必要があり、何か助けが必要です。ビューをエクスポートする方法ASP.NET MVC

基本的に私がやっているのは、いくつかのテキストレポートを提出または掲載するためのMVCプロジェクトであり、私はモデルのデータベースの最初のアプローチを使用しました。だから私は良い計画を立てずに、前に作ったテーブルのこのモデルを持っています。プロジェクトを開始した後、私はデータモデルを設計していて、MVCの考え方から外れることでこの問題を非常にうまく解決しましたが、それには当てはまらないいくつかのイメージを追加する必要がありましたが、 。

So I added an "img" folder to the project and put the .jpeg files inside.

..and Iは、モデルからのデータのうち、そのようなビューの画像を示した:

[email protected] (var item in Model) { 
<tr> 
    <td>    
     <img src="~/img/@string.Format("{0}.jpeg",item.emailid)"/> 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.emailid) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.date) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.task1) 
    </td>....... 

そして、私はこのコードを使用してExcelファイルにそのビューをエクスポート:

このコードは、DataSourceではモデル情報のみであり、私の画像はModelに配置されていないため、 rを上記のように溶液の中に入れます。

イメージを除いて私のビューをエクスポートすることができます。レポートをエクセル化するためにイメージを取得する必要があります。

So this is my view with images

任意のヘルプ?

+1

のように画像を書き出すことができますか? – msd

答えて

0

私は、このクラスで

 public ActionResult ExportData() 
    { 
     GridView gv = new GridView(); 
     var data = db.web_weeklyreports.Include(w => w.web_kategori).Include(w => w.web_kategori1).Include(w => w.web_kategori2).Include(w => w.web_kategori3).Include(w => w.web_kategori4).ToList(); 

     gv.AutoGenerateColumns = false; 
     gv.Columns.Add(new ImageField { HeaderText="IMG", DataImageUrlField = "Imagepath", DataImageUrlFormatString = "https://localhost:44353/img/{0}.jpeg", }); 
     gv.Columns.Add(new BoundField { HeaderText="ID", DataField = "ID" }); 
     gv.Columns.Add(new BoundField { HeaderText="Email", DataField = "emailid" }); 
     gv.Columns.Add(new BoundField { HeaderText="Date", DataField = "date" }); 
     gv.Columns.Add(new BoundField { HeaderText="Task 1", DataField = "task1" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "t1kategoriid" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "task2" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "t2kategoriid" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "task3" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "t3kategoriid" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "task4" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "t4kategoriid" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "task5" }); 
     gv.Columns.Add(new BoundField { HeaderText="", DataField = "t5kategoriid" }); 

     DataTable dt = new DataTable(); 
     dt.Columns.Add("Imagepath"); 
     dt.Columns.Add("ID"); 
     dt.Columns.Add("emailid"); 
     dt.Columns.Add("date"); 
     dt.Columns.Add("task1"); 
     dt.Columns.Add("t1kategoriid"); 
     dt.Columns.Add("task2"); 
     dt.Columns.Add("t2kategoriid"); 
     dt.Columns.Add("task3"); 
     dt.Columns.Add("t3kategoriid"); 
     dt.Columns.Add("task4"); 
     dt.Columns.Add("t4kategoriid"); 
     dt.Columns.Add("task5"); 
     dt.Columns.Add("t5kategoriid"); 

     foreach (var item in data) 
     {     
      dt.Rows.Add(item.emailid, item.ID, item.emailid, item.date, item.task1, item.t1kategoriid, item.task2, item.t2kategoriid, item.task3, item.t3kategoriid, item.task4, item.t4kategoriid, item.task5, item.t5kategoriid);     
     } 

     gv.DataSource = dt; 
     gv.DataBind(); 

     for (int i = 0; i < data.Count; i++) 
     { 
      gv.Rows[i].Height = 40; 
     } 

     Response.ClearContent(); 
     Response.Buffer = true; 
     Response.AddHeader("content-disposition", "attachment; filename=WeeklyReports.xls"); 
     Response.ContentType = "application/ms-excel"; 
     Response.Charset = ""; 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter htw = new HtmlTextWriter(sw); 
     gv.RenderControl(htw); 
     Response.Output.Write(sw.ToString()); 
     Response.Flush(); 
     Response.End(); 

     return RedirectToAction("adminreports"); 
    } 

を、それを解決した今、私はthis:あなたがHTML表のエクスポートを使用して、クライアント側のエクスポートを使用していないのはなぜ

関連する問題