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

بارگذاری ، خواندن و نمایش داده های CSV (فایل متنی) در ASP.Net MVC
0 0
بارگذاری ، خواندن و نمایش داده های CSV (فایل متنی) در ASP.Net MVC

با سلام در این مقاله با یک مثال توضیح خواهیم داد که چگونه بارگذاری ، خواندن و نمایش داده های فایل File Text) CSV) در ASP.Net MVC Razor انجام دهیم .
فایل CSV یک فایل متنی است که حاوی مقادیر جدا شده با کاما (محدودیت کاما) است. داده های یک فایل CSV خوانده و پس از جدا کردن مقادیر ، داده ها با فرمت HTML Table (Grid) جمع می شوند.

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

using System.IO;

Model
در زیر یک کلاس Model به نام CustomerModel با سه خاصیت یعنی CustomerId ، نام و کشور ارائه شده است.

public class CustomerModel
{
    ///<summary>
    /// Gets or sets CustomerId.
    ///</summary>
    public int CustomerId { get; set; }
 
    ///<summary>
    /// Gets or sets Name.
    ///</summary>
    public string Name { get; set; }
 
    ///<summary>
    /// Gets or sets Country.
    ///</summary>
    public string Country { get; set; }
}

Controller
Controller از دو روش تشکیل شده است.
روش  انجام عملیات GET
در داخل این روش Action ، یک مجموعه Generic List خالی از شیء کلاس CustomerModel بازگردانده می شود.
روش کار با عملکرد POST برای بارگذاری و خواندن فایل CSV
با انتخاب فایل CSV و کلیک بر روی دکمه Import ، این روش Action استفاده می شود و فایل بارگذاری شده را در پارامتر HttpPostedFileBase دریافت می کند.
فایل CSV آپلود شده در پوشه ای به نام Uploads ذخیره می شود .
داده های فایل CSV با استفاده از روش File ReadAllText در یک متغیر رشته ای خوانده می شوند.
داده های فایل CSV با استفاده از نویسه های New Line (\ n) و کاما (،) تقسیم و با استفاده از یک حلقه ، داده ها در مجموعه Generic لیست اشیاء کلاس CustomerModel کپی می شوند که سپس به View ارسال می شوند.

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        return View(new List<CustomerModel>());
    }
 
    [HttpPost]
    public ActionResult Index(HttpPostedFileBase postedFile)
    {
        List<CustomerModel> customers = new List<CustomerModel>();
        string filePath = string.Empty;
        if (postedFile != null)
        {
            string path = Server.MapPath("~/Uploads/");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
 
            filePath = path + Path.GetFileName(postedFile.FileName);
            string extension = Path.GetExtension(postedFile.FileName);
            postedFile.SaveAs(filePath);
 
            //Read the contents of CSV file.
            string csvData = System.IO.File.ReadAllText(filePath);
 
            //Execute a loop over the rows.
            foreach (string row in csvData.Split('\n'))
            {
                if (!string.IsNullOrEmpty(row))
                {
                    customers.Add(new CustomerModel
                    {
                        CustomerId = Convert.ToInt32(row.Split(',')[0]),
                        Name = row.Split(',')[1],
                        Country = row.Split(',')[2]
                    });
                }
            }
        }
 
        return View(customers);
    }
}

View
در داخل View ، کلاس CustomerModel به عنوان IEnumerable اعلام شده است و مشخص می کند که آن به عنوان یک مجموعه در دسترس خواهد بود.
View شامل یک عنصر HTML FileUpload و یک دکمه ارسال است که در یک عنصر فرم قرار دارد.
فرم HTML با استفاده از روش Html.BeginForm ایجاد شده است که پارامترهای زیر را می پذیرد.
ActionName - نام عمل در این حالت Index است.
ControllerName - نام Controller در این حالت Home است.
FormMethod - این روش فرم یعنی GET یا POST را مشخص می کند. در این حالت روی POST تنظیم میشود.                                                                                   HtmlAttributes - این مجموعه می تواند ویژگی های فرم اضافی را مشخص کند. در اینجا باید enctype = "multipart / form-data" را مشخص کنیم که برای بارگذاری فایل ها ضروری است.
برای نمایش سوابق از جدول HTML استفاده می شود. یک حلقه بر روی Model اجرا خواهد شد که ردیف های جدول HTML را با داده های فایل CSV ایجاد می کند.

@using Read_CSV_MVC.Models
@model IEnumerable<CustomerModel>
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Index</title>
</head>
<body>
    @using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <input type="file" name="postedFile"/>
        <input type="submit" value="Import"/>
    }
    @if (Model.Count() > 0)
    {
        <hr/>
        <table cellpadding="0" cellspacing="0">
            <tr>
                <th>Id</th>
                <th>Name</th>
                <th>Country</th>
            </tr>
            @foreach (CustomerModel customer in Model)
            {
                <tr>
                    <td>@customer.CustomerId</td>
                    <td>@customer.Name</td>
                    <td>@customer.Country</td>
                </tr>
            }
        </table>
    }
</body>
</html>

عکسهای صفحه
فایل CSV

 

نمایش داده های CSV در HTML Grid

 


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

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