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

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

در این مقاله توضیح میدهیم كه چگونه میتوان محتویات WebGrid با استایل كامل را به فایل Excel ارسال كرد ما در این مقاله از پایگاه داده Northwind مایكروسافت استفاده میكنیم و برای فراخوانی و نمایش داده ها داده از  Entity Framework استفاده خواهیم كرد.

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

Controller

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

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 اعلام می شود كه مشخص می كند كه مدل به عنوان یك مجموعه در دسترس خواهد بود.
برای نمایش سوابق در WebGrid با استفاده از تابع GetHtml مشخص می شود كه WebGrid را با استفاده از مدل ارائه می كند.  به عنوان یك جدول HTML (جدول) متشكل از سوابق جدول مشتریان ارائه می شود.

به منظور ارسال WebGrid با قالببندی، سبكهای CSS در خط به WebGrid و سطرهای Header و Data آن با استفاده از jQuery اعمال می شود.
یك عنصر فیلد پنهان HTML وجود دارد كه برای ارسال HTML از محتوای HTML WebGrid به روش Action Controller استفاده می شود.
در نهایت یك دكمه ارسال HTML وجود دارد كه درون یك فرم قرار دارد با روش Action مشخص شده به عنوان Export .
هنگامی كه  روی آن كلیك می شود، ابتدا HTML WebGrid استخراج شده و در عنصر Field مخفی قرار می گیرد و در نهایت فرم ارسال می شود. 

@model IEnumerable<Customer>
 
@{
    Layout = null;
    WebGrid webGrid = new WebGrid(source: Model, canSort: false, canPage: false);
}
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <h4>Customers</h4>
    <hr />
    <div id="Grid">
        @webGrid.GetHtml(
        htmlAttributes: new { @id = "WebGrid" },
        columns: webGrid.Columns(
                 webGrid.Column("CustomerID""شماره مشتری"),
                 webGrid.Column("ContactName""نام مشتری"),
                 webGrid.Column("City""شهر"),
                 webGrid.Column("Country""كشور")))
    </div>
    <br />
    <br />
    @using (Html.BeginForm("Export""Home"FormMethod.Post))
    {
        <input type="hidden" name="GridHtml" />
        <input type="submit" id="btnSubmit" value="Export" />
    }
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            //Add CSS to the Table for formatting.
            $("#Grid table").attr("cellpadding""5");
            $("#Grid table").css({ "border-collapse""collapse""border""1px solid #ccc" });
            $("#Grid th").css({ "background-color""#B8DBFD""border""1px solid #ccc" });
            $("#Grid td").css({ "width""150px""border""1px solid #ccc" });
 
            //Assign Click event to Button.
            $("#btnSubmit").click(function () {
                $("input[name='GridHtml']").val($("#Grid").html());
            });
        });
    </script>
</body>
</html>

 


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

لینک های دانلود

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