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

انتقال جدول داده ها (جدول Html ) از پایگاه داده به فایل اکسل در ASP.Net MVC
0 0
انتقال جدول داده ها (جدول Html ) از پایگاه داده به فایل اکسل در ASP.Net MVC

با سلام در این مقاله  با مثال توضیح خواهیم داد که چگونه داده های Grid (Table Html) را از پایگاه داده به فایل اکسل در ASP.Net MVC Razor منتقل کنیم.
ابتدا Grid (Table Html) از پایگاه داده با استفاده از Entity Framework چیده شده و پس از آن پرونده ها از پایگاه داده خارج و به عنوان فایل Excel با استفاده از ClosedXML Libraryاکسل که یک بسته بندی برای OpenXml Excel library است، دانلود می شود .
بانک اطلاعاتی
در اینجا از پایگاه Northwind  استفاده می کنیم. شما می توانید آن را از اینجا دانلود کنید.
پایگاه داده Northwind را دانلود و نصب کنید
نصب و اضافه کردن مرجع ClosedXML Library
برای نصب و اضافه کردن مرجعClosedXML Library، شما باید :
1.  بر روی پروژه در Solution Explorer راست کلیک و روی Manage NuGet Packages از منوی Context کلیک کنید.

 2. حالا شما باید بسته ClosedXML را جستجو کنید و آن را پیدا کنید، سپس دکمه Install را کلیک کنید .

پیکربندی و اتصال Entity Framework به پایگاه داده
حالا مراحل را برای پیکربندی و اضافه کردن Entity Framework و نیز نحوه اتصال آن با پایگاه داده توضیح خواهیم داد.
شما نیاز دارید که Entity Data Model را به پروژه خود اضافه کنید با کلیک راست بر روی Solution Explorer و سپس بر روی گزینه افزودن و بعد گزینه New Item از Context Menu کلیک کنید.

از پنجره افزودن آیتم جدید، مدل ADO.NET Entity Data Model را انتخاب کرده و نام خود را به عنوان NorthwindModel تنظیم کنید و سپس روی افزودن کلیک کنید.

سپس داده Entity Data Model Wizard باز خواهد شد و در آنجا باید گزینه پایگاه داده EF Designer را انتخاب کنید.

در حال حاضر wizard از شما میخواهد که اتصال و Connection String  را به پایگاه داده متصل کنید.

شما باید انتخاب کنید :
1. Instance SQL Server
2. پایگاه داده

و سپس روی Test Connection کلیک کنید تا مطمئن شوید تمام تنظیمات درست است.

هنگامی که String اتصال ایجاد می شود، روی دکمه Next کلیک کنید تا به مرحله بعدی بروید.

بعد شما باید نسخه Entity Framework را برای اتصال مورد استفاده قرار دهید.

حالا شما باید جداول هایی را که نیاز دارید برای اتصال و کار با چارچوب Entity را انتخاب کنید . جدول مشتریان اینجا انتخاب شده است.

این مرحله آخرین مرحله بود و شما باید مدل Data Entity Data را با جدول مشتریان پایگاه Northwind آماده کنید .

فضاهای نام
شما باید فضای نامهای زیر را وارد کنید.

using System.IO;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ClosedXML.Excel;

Controller
Controller متشکل از دو روش زیر است :
روش عمل برای دست زدن به عملیات GET
در این روش ، سوابق 10 مشتری برتر جمع آوری شده و به View باز می گردند.
روش عمل برای دست زدن به فایل اکسل خارج و عملیات دانلود
هنگامی که دکمه Export Submit کلیک می شود، این روش عمل اجرا می شود.
توجه :

روش عمل زیر اقدام به دانلود فایل می کند و از این رو نوع بازگشت به FileResult تنظیم می شود .
سوابق 10 مشتری برتر از جدول مشتریان با استفاده از Entity Framework آورده شده و به DataTable پویا افزوده می شود. سپس DataTable به مجموعه Worksheets از شی XLWorkbook ClosedXML اضافه می شود.
شی XLWorkbook به یک شی MemoryStream ذخیره می شود که سپس به Byte Array تبدیل می شود و به عنوان فایل اکسل با استفاده از تابع File Export و Download شده است.

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]
    public FileResult Export()
    {
        NorthwindEntities entities = new NorthwindEntities();
        DataTable dt = new DataTable("Grid");
        dt.Columns.AddRange(new DataColumn[4] { new DataColumn("CustomerId"),
                                            new DataColumn("ContactName"),
                                            new DataColumn("City"),
                                            new DataColumn("Country") });
 
        var customers = from customer in entities.Customers.Take(10)
                        select customer;
 
        foreach (var customer in customers)
        {
            dt.Rows.Add(customer.CustomerID, customer.ContactName, customer.City, customer.Country);
        }
 
        using (XLWorkbook wb = new XLWorkbook())
        {
            wb.Worksheets.Add(dt);
            using (MemoryStream stream = new MemoryStream())
            {
                wb.SaveAs(stream);
                return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
            }
        }
    }
}

 

View
در حال حاضر شما باید در داخل کلاس کنترل راست کلیک کنید و بر روی گزینه Add View کلیک کنید تا یک نمایش برای Controller ایجاد شود.
نام نمایش به Index و گزینه Template به Empty تنظیم شده است، کلاس Model به Entity Customer (که ما با استفاده از Entity Framework ایجاد کرده ایم) و در نهایت کلاس context Data برای NorthwindEntities تنظیم شده است.

درون View، در خط اول، Entity مشتری به عنوان IEnumerable اعلام می شود که مشخص می کند که آن به صورت مجموعه در دسترس خواهد بود.
برای نمایش سوابق، یک جدول HTML استفاده می شود. یک حلقه بر روی Model اجرا می شود که ردیف جدول HTML را با سوابق مشتری تولید می کند.
در نهایت یک دکمه ارسال HTML درون یک فرم وجود دارد که با روش Action مشخص شده به عنوان Export خارج میشود .
هنگامی که روی آن کلیک می شود، اطلاعات شبکه (جدول اعداد) خارج و به عنوان فایل اکسل دانلود می شود.

@model IEnumerable<Export_Excel_MVC.Customer>
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Index</title>
</head>
<body>
    <h4>Customers</h4>
    <hr/>
    <table cellpadding="0" cellspacing="0">
        <tr>
            <th>CustomerID</th>
            <th>Contact Name</th>
            <th>City</th>
            <th>Country</th>
        </tr>
        @foreach (Customer customer in Model)
        {
            <tr>
                <td>@customer.CustomerID</td>
                <td>@customer.ContactName</td>
                <td>@customer.City</td>
                <td>@customer.Country</td>
            </tr>
        }
    </table>
    <br/>
    <br/>
    @using (Html.BeginForm("Export", "Home", FormMethod.Post))
    {
        <input type="submit" value="Export"/>
    }
</body>
</html>

عکسها
Grid (جدول Html)

فایل اکسل خارج شده

 

 


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

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