آپلود، خواندن و نمایش داده های فایل CSV در ASP.Net

در این مقاله قصد داریم که مباحث اپلود ، خواندن و نمایش داده های فایل CSV در Asp.net با استفاده از GrigView را مورد بررسی و بحث قرار بدهیم.

آپلود، خواندن و نمایش داده های فایل CSV در ASP.Net

فایل SCV فایلی متنیست که مقادیر در آن با کاما از یکدیگر جدا شده اند.داده های فایل SCV خوانده خواهد شد و سپس مقادیر که با کاما از یکدیگر جدا شده اند در جدول داده که قصد داریم آن را با استفاده از populate در کنترل GridView در Asp.netMvc ایجاد کنیم قرار خواهند گرفت.

HTML Markup

کدهای Html  باید مانند زیر شامل کنترل FileUpload  و یک دکمه و یک GridView است.

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnImport" runat="server" Text="Import" OnClick="ImportCSV" />
<hr />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>

فضای نام ها

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

using System.IO;
using System.Data;

آپلود کردن و خواندن و نمایش داده های فایل CSV در    GridView

زمانیکه دکمه قرار داده شده برای اولین بار کلیک میشود ، فایل CSV ابتدا آپلود و سپس در فایلی با نام Folders ذخیره میشود.داده های فایل CSV در یک متغییر با استفاده از کلاس فایل ReadAllText method خوانده میشود.

Data Table با استفاده از همان روش ستون های جدول مقصد ساخته شده است و سپس داده های فایل CSV که با استفاده از  (\n) و (,) از یکدیگر جدا شده اند با استفاده از یک حلقه در جدول جدید ذخیره میشوند.در نهایت Data Table با استفاده از کنترل GridView محدود شده است.

#C

protected void ImportCSV(object sender, EventArgs e)
{
    //Upload and save the file
    string csvPath = Server.MapPath("~/Files/") + Path.GetFileName(FileUpload1.PostedFile.FileName);
    FileUpload1.SaveAs(csvPath);
 
    //Create a DataTable.
    DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
        new DataColumn("Name", typeof(string)),
        new DataColumn("Country",typeof(string)) });
 
    //Read the contents of CSV file.
    string csvData = File.ReadAllText(csvPath);
 
    //Execute a loop over the rows.
   foreach (string row in csvData.Split('\n'))
    {
        if (!string.IsNullOrEmpty(row))
        {
            dt.Rows.Add();
            int i = 0;
 
            //Execute a loop over the columns.
            foreach (string cell in row.Split(','))
            {
                dt.Rows[dt.Rows.Count - 1][i] = cell;
                i++;
            }
        }
    }
 
    //Bind the DataTable.
    GridView1.DataSource = dt;
    GridView1.DataBind();
}

تصاویر

فایل CSV

نمایش GridView داده های فایل CSV

فایل های ضمیمه
دانلود نسخه ی PDF این مطلب