PDA

View Full Version : انتقال رکوردهای فایل اکسل به گرید ویو



mostafa_tak2000
پنج شنبه 16 آذر 1391, 02:00 صبح
سلام
من یک فایل اکسل دارم که دارای 3 عدد sheet هست . میخواهم که کدی بنویسم که وقتی کاربر اجرا کرد فایل اکسل موجود در پوشه هاست را بازکرده و اطلاعات آنرا در یک گرید ویو نمایش دهد . لطفا ننویسید که جستجو کن پیدا میکنی چون واقعا خیلی جستجو کردم چیزی دستگیرم نشده . راستی دوستان اگه کد ارائه میدن کد VB با شه من بیشتر متوجه میشم آخه با #C زیاد تسلط ندارم. با تشکر

ali9698
پنج شنبه 16 آذر 1391, 02:27 صبح
فکر کنم این به دردت بخوره
http://www.devcurry.com/2009/07/import-excel-data-into-aspnet-gridview.html

ali9698
پنج شنبه 16 آذر 1391, 02:28 صبح
البته خودم ازش قبلا استفاده نکردم. اما سایت معتبریه

mostafa_tak2000
جمعه 17 آذر 1391, 00:16 صبح
تشکر دوست عزیز . لینکت بسیار عالی بود - من طبق کد همه چیز را درست کردم ولی موقع اجرا اشکال زیر را میگیره . میشه راهنمایی کنید اشکال کار کجاست. با تشکر
96194

ali9698
جمعه 17 آذر 1391, 00:33 صبح
راستش من خودم از این کد استفاده نکردم. ظاهرا این خطایی که من میبینم داره میگه که Sheet1 پیدا نشده! و یا وجود نداره. توی آدرس دهی و یا نام sheet اشتباه کردی. چک کن امیدوارم درست بشه

mostafa_tak2000
جمعه 17 آذر 1391, 10:54 صبح
چک کردم - sheet1 موجود هست ولی باز میگه نیست . اگه ممکنه شماهم چکش کنید یه تست بزنید. باتشکر

ali9698
جمعه 17 آذر 1391, 11:59 صبح
منم تست کردم تازه خوردم به یه ارور دیگه! :افسرده:

ali9698
جمعه 17 آذر 1391, 12:24 عصر
من حتی این مطلب رو هم پیدا کردم اما بازم ارور داد!!!
http://wiki.asp.net/page.aspx/825/loading-excel-data-into-a-gridview/

fakhravari
جمعه 17 آذر 1391, 21:09 عصر
یک شیت داریم به اسم employee
string cnstr = @"Provider=Microsoft.Jet.Oledb.4.0;Data Source=D:\Sourse KD Ha\Asp.net\Sourse KD\ClassLibrary1\TestProject\employee.xls;Extended Properties=Excel 8.0";
OleDbConnection oledbConn = new OleDbConnection(cnstr);
string strSQL = "SELECT * FROM [employee$]";

OleDbCommand cmd = new OleDbCommand(strSQL, oledbConn);
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();

saeed_sho
شنبه 18 آذر 1391, 12:07 عصر
برای مواقعی که نمیدونید که اسم شیت فایل حتما sheet1$ یا نه میتونید از این کد استفاده کنید
Dim excelConnection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fu_import.PostedFile.FileName & ";Extended Properties=Excel 12.0;HDR=No;")
If (excelConnection.State = ConnectionState.Closed) Then excelConnection.Open()

Dim dbSchema As DataTable = excelConnection.GetOleDbSchemaTable(OleDbSchemaGui d.Tables, Nothing)
Dim firstSheetName As String = dbSchema.Rows(0)("Table_Name").ToString()
Dim excelDa As New OleDbDataAdapter("SELECT * FROM [" & firstSheetName & "$]", excelConnection)
'Dim excelDa As New OleDbDataAdapter("SELECT * FROM [Sheet1$]", excelConnection)
Dim dt_excel As New DataTable()
If (dt_excel.Rows.Count > 0) Then dt_excel.Clear()
excelDa.Fill(dt_excel)

saeed_sho
شنبه 18 آذر 1391, 12:12 عصر
آقای فخرآوری این ارور برای چیه؟ و چطوری رفع میشه؟
Could not find installable ISAM
ممنون میشم راهنمایی کنید

fakhravari
شنبه 18 آذر 1391, 15:20 عصر
آقای فخرآوری این ارور برای چیه؟ و چطوری رفع میشه؟
Could not find installable ISAM
ممنون میشم راهنمایی کنید

اون چی هست؟

mehrbani
شنبه 18 آذر 1391, 18:20 عصر
شما باید با استفاده از یک Library فایل اکسل رو بخونین و به یک GridView اون رو Bind کنید.
بهترین کتابخانه برای خواندن فایل های اکسل که باهاش کار کردم این بوده
exceldatareader.codeplex.com (http://exceldatareader.codeplex.com/)

saeed_sho
یک شنبه 19 آذر 1391, 11:05 صبح
اون چی هست؟
وقتی کانکشن رو باز میکنم این ارورو میده
خیلی وقته باهاش درگیرم و نتونستم حلش کنم

saeed_sho
یک شنبه 19 آذر 1391, 13:22 عصر
من چه از این کانکشن استرینگ استفاده کنم
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fu_import.FileName + ";Extended Properties=Excel 12.0;HDR=No;"
چه از این
connStr = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + fu_import.FileName + ";Extended Properties=Excel 8.0;HDR=No;"
موقع باز کردن کانکشن این ارور میده
Could not find installable ISAM
اینو ببینید
http://support.microsoft.com/kb/209805
لطفا راهنمایی کنید

saeed_sho
یک شنبه 19 آذر 1391, 15:31 عصر
پروژه آقای فخرآوری رو که در سیستم خودم تست کردم درست کار کرد اما ماله خودم موقع باز کردن کانکشن این ارور رو میده
Could not find installable ISAM
پروژه من وب اپلیکیشن هستش این هم فکر نکنم تاثیر داشته باشه
اینم کدم
Private Function GetDataFromExcel() As DataTable
Dim connStr As String = String.Empty
If (System.IO.Path.GetExtension(fu_import.FileName) = ".xlsx") Then
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fu_import.FileName + ";Extended Properties=Excel 12.0;HDR=No;"
ElseIf (System.IO.Path.GetExtension(fu_import.FileName) = ".xls") Then
connStr = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + fu_import.FileName + ";Extended Properties=Excel 8.0;HDR=No;"
End If
'
Dim conn As New OleDbConnection(connStr)
Dim dt_excel As New DataTable()
If (dt_excel.Rows.Count > 0) Then dt_excel.Clear()
'
Try
If (conn.State = ConnectionState.Closed) Then conn.Open()
'
Dim dt_schema As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
If (dt_schema Is Nothing) Then Return Nothing
'
Dim da As New OleDbDataAdapter()
da.SelectCommand = New OleDbCommand
da.SelectCommand.Connection = conn
da.SelectCommand.CommandText = String.Format("Select * From [{0}$]", dt_excel(0).Item("Table_Name").ToString())
da.SelectCommand.CommandType = CommandType.Text
da.Fill(dt_excel)

conn.Close()
Return dt_excel
Catch ex As Exception
conn.Close()
Return Nothing
End Try
End Function

fakhravari
یک شنبه 19 آذر 1391, 19:12 عصر
نمیدونم ولی ببنید برنامه افیس چه ورژنی نصب.
فکر کنم باید حداقل 2003 نصب باشه . شایدم برای ورزن های دیگه کانکشن استرینگ فرق کنه

saeed_sho
یک شنبه 19 آذر 1391, 19:21 عصر
نمیدونم ولی ببنید برنامه افیس چه ورژنی نصب.
فکر کنم باید حداقل 2003 نصب باشه . شایدم برای ورزن های دیگه کانکشن استرینگ فرق کنه
روی سیستمم آفیس 2007 نصبه
در پست 16 کانکشن استرینگ اول برای 2007 و دومی برای 2003 هستش تا اونجایی که من میدونم

saeed_sho
دوشنبه 20 آذر 1391, 20:32 عصر
کسی تا حالا با این ارور برخورد نکرده؟
نمیدونید چرا این ارورو میده؟

SS^T^NN
سه شنبه 21 آذر 1391, 02:49 صبح
انتقال فایل Excel به SQL server در ASP.net با C#‎
دوستان بنده یه مدتی از برنامه نویسی به دور بودم دوباره شروع کردم واسه همین به کمکتون نیاز دارم

خواهشا راهکار به بنده ندین من میخوام برنامش برام بنویسین و میدونم خیلی برادری و بزرگی کردین در حق بنده !

چون اینم برایه جایی میخوام پس به همین روش که ازتون میخوام لطف کنین برنامش برام بنویسین

یه فایل Excel دارم که توش مشخصات و فیش حقوقی افراد هست باید با استفاده از ASP.net و حتما زبان C#‎‎‎ باید اطلاعات فایل Excel را با برنامه نویسی به SQL server انتقال بدیم ، کاربر فقط شماره پرسنلی وارد میکنه و سپس در صفحه دیگه مشخصات فیش حقوقی نشان داده بشود . همین !

فایل Excel مورد نذر را در لینک زیر قرار دادم:
http://www.4shared.com/office/KBJ8Zcn-/file.html
خواهش میکنم فقط کمی سریعتر کمک کنین ممنون میشم ! من هر لحظه سر میزنم

saeed_sho
چهارشنبه 22 آذر 1391, 10:40 صبح
جواب مشکلی که در تاپیک 16 گفتم رو پیدا کردم میزارم تا اگه کسی این مشکل رو داشت ببینه
اشکال از کانکشن استرینگ بود البته من اول فایلو ذخیره کردم بعد اطلاعاتشو خوندم و بعد حذفش کردم چون اگه ذخیره نمیکردم میگفت اجازه دسترسی نداری
خب فقط کانکشن استرینگ هارو میزارم این نکته رو در نظر بگیرید که فایل قبلا در اون مسیر ذخیره شده
هم 2003 رو پشتیبانی میکنه و هم 2007
If (System.IO.Path.GetExtension(fu_import.FileName) = ".xlsx") Then
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Request.PhysicalApplicationPath + "App_Data\" + fileName + ".xlsx;Extended Properties=Excel 12.0"
ElseIf (System.IO.Path.GetExtension(fu_import.FileName) = ".xls") Then
connStr = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Request.PhysicalApplicationPath + "App_Data\" + fileName + ".xls;Extended Properties=Excel 8.0"
End If

SS^T^NN
چهارشنبه 22 آذر 1391, 11:36 صبح
انتقال فایل Excel به SQL server در ASP.net با C#‎‎‎
دوستان بنده یه مدتی از برنامه نویسی به دور بودم دوباره شروع کردم واسه همین به کمکتون نیاز دارم

خواهشا راهکار به بنده ندین من میخوام برنامش برام بنویسین و میدونم خیلی برادری و بزرگی کردین در حق بنده !

چون اینم برایه جایی میخوام پس به همین روش که ازتون میخوام لطف کنین برنامش برام بنویسین

یه فایل Excel دارم که توش مشخصات و فیش حقوقی افراد هست باید با استفاده از ASP.net و حتما زبان C#‎‎‎‎‎ باید اطلاعات فایل Excel را با برنامه نویسی به SQL server انتقال بدیم ، کاربر فقط شماره پرسنلی وارد میکنه و سپس در صفحه دیگه مشخصات فیش حقوقی نشان داده بشود . همین !

فایل Excel مورد نذر را در لینک زیر قرار دادم:
http://www.4shared.com/office/KBJ8Zcn-/file.html
خواهش میکنم فقط کمی سریعتر کمک کنین ممنون میشم ! من هر لحظه سر میزنم
اساتید برنامه نویس این چیزی که ازتون خواستم خواهشا کمک کنین برنامش برام بنویسید فایل اکسل مورد نظر هم آپلود کردم

fakhravari
چهارشنبه 22 آذر 1391, 13:41 عصر
انتقال فایل Excel به SQL server در ASP.net با C#‎‎‎‎

تاپیک جدا بزنید

SS^T^NN
جمعه 24 آذر 1391, 03:27 صبح
انتقال فایل Excel به SQL server در ASP.net با C#‎‎‎‎

تاپیک جدا بزنید

http://barnamenevis.org/showthread.php?372956-%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84-%D9%81%D8%A7%DB%8C%D9%84-Excel-%D8%A8%D9%87-SQL-server-%D8%AF%D8%B1-ASP.net-%D8%A8%D8%A7-C&p=1646797#post1646797

SS^T^NN
یک شنبه 26 آذر 1391, 15:47 عصر
انتقال فایل Excel به SQL server در ASP.net با C#‎‎‎‎‎

تاپیک جدا بزنید
ای بابا من یه چیز از شما خواستما این پاس میده به اون اون پاس میده به این، تایپیک جدیدم زدم جان من بنویس برنامرو

fakhravari
یک شنبه 26 آذر 1391, 17:26 عصر
ای بابا من یه چیز از شما خواستما این پاس میده به اون اون پاس میده به این، تایپیک جدیدم زدم جان من بنویس برنامرو
عزیز دل بابا شما با متد های بالا بخونید فایل رو بعد با یک حلقه for دونه دونه بریزید درون جدول

SS^T^NN
جمعه 08 دی 1391, 15:11 عصر
عزیز دل بابا شما با متد های بالا بخونید فایل رو بعد با یک حلقه for دونه دونه بریزید درون جدول

اساتید یه لحظه تشریف بیارین اینجا ببینین چه جوریه این فایل اکسل تشریف بیارین این لینک کامل توضیح دادم تنبلی نکن دمت گرم بیا پست شماره 6 لینک زیر
http://barnamenevis.org/showthread.php?372956-%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84-%D9%81%D8%A7%DB%8C%D9%84-Excel-%D8%A8%D9%87-SQL-server-%D8%AF%D8%B1-ASP.net-%D8%A8%D8%A7-C&p=1646797#post1646797

fakhravari
شنبه 09 دی 1391, 19:06 عصر
ببین
من فایل دیدم .
موثع select گرفتن روش خطا میداد.
من اومدم یک ctrl+a زدن روی فایل بعد توی یه فایل جدید اضافش کردم.
بعد با دستور
string cnstr = @"Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\Users\Administrator\Downloads\file.xls;E xtended Properties=Excel 8.0";
OleDbConnection oledbConn = new OleDbConnection(cnstr);
string strSQL = "SELECT * FROM [employee$]";

OleDbCommand cmd = new OleDbCommand(strSQL, oledbConn);
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);
GridView2.DataSource = ds;
GridView2.DataBind();

خروجی اومد
ولی فایل های تو نامنظم
یعنی سطر ستون چیدمان نداره هر کدومش یه جا قل خورده

SS^T^NN
یک شنبه 10 دی 1391, 10:38 صبح
دست گلت میبوسم به خاطر این کارت فوق العاده کار کردی !
فقط داداش من وقتی بخوام این پروژه ارایه بدم به کارفرما جلو چشماش بیام CTr+a بزنم بعد تو فایل دیگه بریزم که قبول نمیکنه من میخوام همه این کارا با برنامه نویسی باشه !
در ضمن من میخوام تو sql server بریزه و هر جدول اکسل تویه یک رکرد از پایگاه داده sql server باشه !
کارت معرکه بود دمت گرم فقط آخرین درخواستم اینه یه تیکه اون کدشم بزار که شماره پرسنلی وارد کنه و اطلاعات اون فرد نشون بده ! این خیلی مهمه اخه فیلد هاش نامنظمه
قربون دستایه کد زنت برم

fakhravari
یک شنبه 10 دی 1391, 11:58 صبح
ببین در کل ساختار این فایل خوب نیست.
برای انتقل در sql هم بع از فراخونی داده ها میتونی با یک حلقه در sql درج کنی.
اما باید قبلش هر ستون شناسایی کنی که باید ستون با if چک کنی.
-------------------
شما چرا همه چی با هم قاطی میکنید
شما باید چنتا کار انجام دهید
1) ابتدا باید ببینی این فایل اکسل مشکلی از نظر ساختار ستون ها نداره
2) اگر مشکلی نبود باید حداقل سطر و ستون ها منظم باشه.
3) بعد از شناسایی هر قسمت باید جست جو روی DataSet براش بنویسید که مقادیر هر بخش در بیاره.
4) بعد از شناسی راحت میشه انتقال داد به sql
5) داینامیکی وجود ندارد به احتمال زیاد برای این فایل.

mansureh65
یک شنبه 09 شهریور 1393, 12:58 عصر
​سلام من از یک روش برای آپلود فایل اکسل روی وب و بارگذاری اون روی یک دیتابیس استفاده میکنم که مراحلش به شرح زیر است و جزئیاتشو براتون میذارم
1- آپلود کردن فایل اکسل
2- مشخص کردن فرمت فایل و تشخیص اینکه فایل xls است یا xlsx
3- مشخص می کنیم که آیا سطر اول از فایل اکسل بعنوان دیتا هست و باید ذخیره شه یا نه بعنوان هدر هست
4-نام sheet های فابل اکسل رو در یک dropdownlist (کنترل asp.net) لود می کنیم
5- نام sheet مورد نظر رو که میخوایم اطلاعاتو از تو اون بگیریم مشخص می کنیم
6-نام table ( جدول) از بانک اطلاعاتی رو که میخوایم اطلاعات روی اون بارگذاری بشه رو در یک textbox مشخص می کنیم
7- دکمه بارگذاریو می زنیم تا اطلاعات بارگذاری بشه تو بانک اطلاعاتی

جزئیات:


تو مرحله اول دو تا Stored Procedures در بانک اطلاعاتی ایجاد میکنیم که شرح جفتشونو براتون میذارم




بلبرینگ (http://www.mottaghi-skf.com) پنوماتیک (http://www.mottaghi-skf.com)

ramin_hashemi
سه شنبه 28 مهر 1394, 00:18 صبح
شما باید با استفاده از یک Library فایل اکسل رو بخونین و به یک GridView اون رو Bind کنید.
بهترین کتابخانه برای خواندن فایل های اکسل که باهاش کار کردم این بوده
exceldatareader.codeplex.com (http://exceldatareader.codeplex.com/)


بهترین راه برای این کار راهنمایی دوستمون هست که بهش اشاره کردن