"> خروجی گرفتن و بارگیری فایل Excel در ASP.NET Core | ام اس پی سافت

خروجی گرفتن و بارگیری فایل Excel در ASP.NET Core

فایل Excel

در این آموزش به شما یک روش ساده و سریع برای خروج و دانلود داده <IEnumerat <T به فایل Excel در Asp.Net Core Backend آموزش خواهیم داد.

آموزش های بسیاری در دسترس وجود دارد اما این آموزش بسیار ساده بوده و بیشتر از ۱۰ دقیقه وقت شما را نخواهد گرفت.

قبل از ادامه دادن بسته nuget package زیر را نصب کنید:

Fingers10.ExcelExport v1.0.0

Package Manager

PM>Install-PackageFingers10.ExcelExport

.NET CLI

>dotnetaddpackageFingers10.ExcelExport

بطور کلی، در اکثر موارد همواره می خواهیم از فهرست های داده ای درون Excel خروجی بگیریم. پس از تحلیل آن با راه حل های موجود بسیار در اینترنت، رویکردی آسان جهت پیاده سازی این عملکرد یافته ایم.

تمامی کارهای دشوار را در Nuget Package خود  Fingers10.ExcelExport  انجام داده ایم.

تنها کاری که نیاز است انجام دهید، این است که مراحل زیر را دنبال کنید.

  1. داده Ienumerable خود را از پایگاه داده یا سرویس خود بگیرید.
  2.  یک ActionResult با نام ExcelResult در بسته خود ایجاد کنید سپس متد فعالیت action method یا کنترل کننده صفحه page handler خود می توانید یک فرخوانی به excelReßult اجرا و داده نام برگه sheet name و نام فایل را بعنوان پارامتر ارسال کنید.
  3. داده شما پردازش شده و بصورت فایل اکسل به مرورگر برگشت داده می شود.
  4.  داده شما می تواند هر سطحی از تو در تویی Nested level را داشته باشد.
  5.  شما می توانید نام ستون های اکسل را با استفاده از Data Annotation که در زیر شرح داده خواهد شد، شخصی سازی کنید.
  6. فایل اکسل ستون ها را به ترتیب خصوصیات موجود در مدل داده ای شما نمایش خواهد داد.

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

توجه داشته باشید که می توانیم Nested Property ها را در هر سطحی داشته باشیم و آن ها در Excel به ترتیبی که ویژگی ها را در کلاس اضافه کرده ایم، نمایش داده می شوند.

Root Model

public class DemoExcel  
{  
    public int Id { get; set; }  
  
    public string Name { get; set; }  
  
    public string Position { get; set; }  
  
    [Display(Name = "Office")]  
    public string Offices { get; set; }  
  
    public DemoNestedLevelOne DemoNestedLevelOne { get; set; }  
}  

Nested Level One Method

public class DemoNestedLevelOne  
{  
    public short? Experience { get; set; }  
  
    [DisplayName("Extn")]  
    public int? Extension { get; set; }  
  
    public DemoNestedLevelTwo DemoNestedLevelTwos { get; set; }  
}  

Nested Level Two Method

public class DemoNestedLevelTwo  
{  
    [DisplayName("Start Date")]  
    public DateTime? StartDates { get; set; }  
  
    public long? Salary { get; set; }  
}  

نام ستون ها
همانطور که پیش تر اشاره شد، نام ستون ها در Excel Export می تواند با استفاده از صفات زیر پیکربندی شود.

* `[Display(Name = “”)]`
* `[DisplayName(“”)]`

اگر صفات فوق استفاده نشوند، آنگاه نام ستون بطور پیش فرض برابر نام ویژگی قرار خواهد گرفت.

متد Action

به بخش جالب ماجرا رسیدیم. اکنون در متد action خود، داده های IEnumerable<T> خود را از سرویس گرفته و سپس آن را به عنوان یک ExcelResult<T>، با تعیین Root Model و نام صفحه و نام فایل Excel، برگردانید.

public async Task&amp;amp;amp;lt;IActionResult&amp;amp;amp;gt; GetExcel()  
{  
    // Get you IEnumerable&amp;amp;amp;lt;T&amp;amp;amp;gt; data  
    var results = await _demoService.GetDataAsync();  
    return new ExcelResult&amp;amp;amp;lt;DemoExcel&amp;amp;amp;gt;(results, "Demo Sheet Name", "Fingers10");  
} 

Page Handler

همین کار در مورد page handler ها نیز صدق می کند.

حال در page handler خود، داده های IEnumerable<T> خود را از سرویس دریافت کرده و سپس آن را به عنوان یک ExcelResult<T>، با تعیین Root Model و نام صفحه و نام فایل Excel، برگردانید.

public async Task&amp;amp;amp;lt;IActionResult&amp;amp;amp;gt; OnGetExcelAsync()  
{  
     // Get you IEnumerable&amp;amp;amp;lt;T&amp;amp;amp;gt; data  
    var results = await _demoService.GetDataAsync();  
    return new ExcelResult&amp;amp;amp;lt;DemoExcel&amp;amp;amp;gt;(results, "Demo Sheet Name", "Fingers10");  
}  

خروجی فایل Excel

اکنون فایل Excel بصورت زیر دانلود خواهد شد

اگر نگاهی به فایل Excel تولید شده بیندازید، می توانید مشاهده کنید که ستون ها مشابه با مدل داده ای مان مرتب شده اند.

Id، Name، Position، و Office از کلاس DemoExcel و آخرین ویژگی در کلاس DemoExcel ما یک ComplexType است که DemoNestedLevelOne می باشد که در عوض دارای Experience، Extension و یک ComplexType دیگر است که DemoNestedLevelTwo می باشد و در آخر، این دارای ستون های StartDate و Salary است.

ترتیب ستون ها می تواند از طریق تغییر ترتیب ویژگی ها در کلاس های مدل خود عوض شود.

فایل Excel

سپاس از مطالعه تان.

  • پسورد: www.mspsoft.com
زهره سلطانیان

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

کدیشن ! مارکت پروژه های برنامه نویسی راه اندازی شدیه توکه پا بریم ببینم