خواندن اطلاعات از excel در Asp.Net
شنبه 1 فروردین 1394در این مقاله خواهیم دید که چگونه اطلاعات را از یک فابل excel در برنامه خود بخوانیم
خواندن اطلاعات از excel در Asp.Net
گاهی اوقات میخواهیم داده ها را از یک فایل اکسل بخوانیم و اطلاعات خاصی را در یک صفحه نمایش دهیم در این مقاله خواهیم دید چگونه در asp.net این عمل انجام خواهد شد
در ابتدا یک فایل اکسل به نام MyExcel.xlsx با دو فیلد به شکل زیر میسازیم :
در این مقاله نام sheet را تغییر ندادم چون در صورت تغییربه نام sheet نیاز خواهیم داشت همچنین شما میتوانید فایل اکسل را درون اسناد متصل پیدا کنید حال برای گرفتن داده از فایل اکسل نیاز به موارد زیر داریم:
1- کنترل فایل آپلود برای آپلود فایل
2- گرید ویو برای نمایش اطلاعات
3- یک button
حال برنامه ویژوال استدیو خود را باز کنید و یک پروژه جدید از نوع وب فرم بسازید:
حال در پنجره solution explorer روی نام پروژه کلیک راست کنید و گزینه add new item را انتخاب کنید و یک صفحه جدید به پروژه خود اضافه کنید و سه مورد گفته شده را از جعبه ابزار خود به صفحه اضافه کنید
<asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="خواندن اطلاعات" OnClick="Button1_Click" /> <asp:GridView ID="GridView1" runat="server"></asp:GridView>
صفحه دیزاین:
سه فضای نام مورد استفاده قرار میگیرد:
using System.IO; using System.Data.OleDb; using System.Data;
Io برای فایل و مسیر فیزیکی و data برای کار با datattable و از همه مهم تر oledb برای اتصال به فایل اکسل
Microsoft Excel شبیه یک پایگاه داداه است و oledb برای اتصال استفاده شده است
حال در رویداد کلیک دکمه خواندن اطلاعات کد زیر را بنویسید:
protected void Button1_Click(object sender, EventArgs e) { //if File is not selected then return if (Request.Files["FileUpload1"].ContentLength <= 0) { return; } //Get the file extension string fileExtension = Path.GetExtension(Request.Files["FileUpload1"].FileName); //If file is not in excel format then return if (fileExtension != ".xls" && fileExtension != ".xlsx") { return; } //Get the File name and create new path to save it on server string fileLocation = Server.MapPath("\\") + Request.Files["FileUpload1"].FileName; //if the File is exist on serevr then delete it if (File.Exists(fileLocation)) { File.Delete(fileLocation); } //save the file lon the server before loading Request.Files["FileUpload1"].SaveAs(fileLocation); //Create the QueryString for differnt version of fexcel file string strConn = ""; switch (fileExtension) { case ".xls": //Excel 1997-2003 strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\""; break; case ".xlsx": //Excel 2007-2010 strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 12.0 xml;HDR=Yes;IMEX=1\""; break; } //Get the data from the excel sheet1 which is default string query = "select * from [Sheet1$]"; OleDbConnection objConn; OleDbDataAdapter oleDA; DataTable dt = new DataTable(); objConn = new OleDbConnection(strConn); objConn.Open(); oleDA = new OleDbDataAdapter(query, objConn); oleDA.Fill(dt); objConn.Close(); oleDA.Dispose(); objConn.Dispose(); //Bind the datatable to the Grid GridView1.DataSource = dt; GridView1.DataBind(); //Delete the excel file from the server File.Delete(fileLocation); }
حال میتوانید برنامه رو اجرا کنید:
حال فایل اکسلی که در ابتدا ساختیم را انتخاب کنید و روی دکمه خواندن فایل کلیک کنید:
- ASP.net
- 5k بازدید
- 4 تشکر