توضیحات و دانلود

ارسال Partial View به Excel در ASP.Net MVC
0 0
ارسال Partial View به Excel در ASP.Net MVC

در این مقاله توضیح میدهیم كه چگونه میتوان محتویات Partial View را به فایل Excel ارسال كرد ابتدا مشخصات در  Table Html از پایگاه داده با استفاده از چارچوب Entity Framework در قسمت Partial View ذخیره خواهد شد و سپس جدول HTML به عنوان رشته HTML به Controller ارسال می شود كه در نهایت به فایل اكسل در ASP.Net MVC Razor  ارسال می شود. ما در این مقاله از پایگاه داده Northwind مایكروسافت استفاده میكنیم .

ابتدا با استفاده از Entity Framework به پایگاه داده وصل میشویم و جدول Costumer را اضافه میكنیم و بعد یك Controller به نام Home ایجاد كرده و كدهای زیر را در آن وارد میكنیم 

ابتدا فضای نام زیر را وارد كنید.

using System.Text;

Controller

Get :برای نمایش صفحه و واكشی اطلاعات از پایگاه داده 

Post :برای ارسال داده به Excel استفده میشود.

HTML WebGrid ارسال شده از نمایش از پارامتر GridHtml استخراج شده است.

رشته HTML به Array Byte با استفاده از توابع GetBytes از كلاس ASCII تبدیل می شود .

در نهایت، آن را با استفاده از تابع فایل ارسال شده و به عنوان فایل اكسل دانلود میكنید. 

public class HomeController : Controller
   {
       // GET: Home
       public ActionResult Index()
       {
           NorthwindEntities entities = new NorthwindEntities();
           return View(from customer in entities.Customers.Take(10)
                       select customer);
       }
 
       [HttpPost]
       [ValidateInput(false)]
       public FileResult Export(string GridHtml)
       {
           return File(Encoding.ASCII.GetBytes(GridHtml), "application/vnd.ms-excel""Grid.xls");
       }
   }

View

درون View، در خط اول، مشتری به عنوان IEnumerable اعلان می شود كه مشخص می كند كه آن را به عنوان یك مجموعه در دسترس خواهد بود.
برای نمایش سوابق، نمایش جزئی با استفاده از تابع Html.Partial ارائه می شود كه نمای Partial را با استفاده از Model ارائه می كند.
نمای Partial به عنوان یك جدول HTML  كه شامل سوابق جدول مشتری است، ارائه می شود.
یك فیلد پنهان HTML وجود دارد كه برای ارسال HTML از جدول Grid  به روش Action Controller استفاده می شود.
در نهایت یك دكمه ارسال HTML وجود دارد كه درون یك فرم قرار دارد با روش Action مشخص شده به عنوان Export .
هنگامی كه این دكمه روی آن كلیك می شود ابتدا HTML Grid View's Partition  استخراج می شود و در عنصر Field مخفی قرار می گیرد و در نهایت فرم ارسال می شود. 

@model IEnumerable<Customer>
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <h4>مشتری</h4>
    <hr />
    <div id="Grid">
        @Html.Partial("Grid_View", Model)
    </div>
    <br />
    <br />
    @using (Html.BeginForm("Export""Home"FormMethod.Post))
    {
        <input type="hidden" name="GridHtml" />
        <input type="submit" id="btnSubmit" value="ارسال به اكسل" />
    }
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btnSubmit").click(function () {
                $("input[name='GridHtml']").val($("#Grid").html());
            });
        });
    </script>
</body>
</html>

Partial View

در داخل Partial View ، در اولین خط، مشتری به عنوان IEnumerable اعلام می شود كه مشخص می كند كه آن به عنوان یك مجموعه در دسترس خواهد بود.
برای نمایش سوابق، یك جدول HTML استفاده می شود. یك حلقه بر روی مدل اجرا می شود كه ردیف جدول HTML را با سوابق مشتری تولید می كند. 

@model IEnumerable<Customer>
<table cellpadding="5" cellspacing="0" style="border1px solid #ccc;font-size9pt;border-collapse:collapse">
    <tr>
        <th style="background-color#B8DBFD;border1px solid #ccc">كد مشتری</th>
        <th style="background-color#B8DBFD;border1px solid #ccc">نام مشتری</th>
        <th style="background-color#B8DBFD;border1px solid #ccc">شهر</th>
        <th style="background-color#B8DBFD;border1px solid #ccc">كشور</th>
    </tr>
    @foreach (Customer customer in Model)
    {
        <tr>
            <td style="width:120px;border1px solid #ccc">@customer.CustomerID</td>
            <td style="width:120px;border1px solid #ccc">@customer.ContactName</td>
            <td style="width:120px;border1px solid #ccc">@customer.City</td>
            <td style="width:120px;border1px solid #ccc">@customer.Country</td>
        </tr>
    }
</table>
 
 

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :