سلام عليكم
هل يوجد أحد قام بتجربة تحويل البيانات من أل DataSet إلى Excel
لقد قمت بتنزيل كود و لكن لم ينجح في التحويل, هل من أحد قام بتجربة الموضوع؟؟؟؟
مع الشكر
:huh:
سلام عليكم
هل يوجد أحد قام بتجربة تحويل البيانات من أل DataSet إلى Excel
لقد قمت بتنزيل كود و لكن لم ينجح في التحويل, هل من أحد قام بتجربة الموضوع؟؟؟؟
مع الشكر
:huh:
هذا اجراء يقوم بتحويل DataTable الى ملف Excel
Private Sub Export2MSExcel(ByVal T As DataTable)
Dim ExcelApp As Excel.Application = New Excel.Application()
Dim Workbooks As Excel.Workbooks = ExcelApp.Workbooks
Dim Workbook As Excel.Workbook = Workbooks.Add(System.Reflection.Missing.Value)
Dim Sheets As Excel.Sheets = Workbook.Sheets
Dim Worksheet As Excel.Worksheet = Sheets("Sheet1")
Dim RowsCount As Integer = T.Rows.Count
Dim ColsCount As Integer = T.Columns.Count
Dim ColsCounter As Integer
Dim RowsCounter As Integer
'Columns Header
For ColsCounter = 0 To ColsCount - 1
Worksheet.Cells(1, ColsCounter + 1) = T.Columns(ColsCounter).ColumnName.ToString
'First Row for Columns Header
Next
For RowsCounter = 0 To RowsCount - 1
For ColsCounter = 0 To ColsCount - 1
Worksheet.Cells(RowsCounter + 2, ColsCounter + 1) = T.Rows(RowsCounter)(ColsCounter)
'Start With the Second Row Because First Row for Columns Header
Next
Next
ExcelApp.Visible = True
ExcelApp.UserControl = True
End Subملاحظة يجب اضافة Reference لل Excel ، من Add Reference اختار COM ومن ثم Microsoft Excel 11.0 Object Library
Error_while_Exporting_To_Excel.docتحية لك اخ عبد الباسط
لكن الكود لم ينجح في التحويل و يظهر لي مسج عن المشكلة
و المسج عن المشكلة وضعتلك اياها في الملف المرفق لعلك تجد لي حلا لها
و لك جزيل الشكر و التقدير
الظاهر لي ان المشكة من اصدارة ال MS Excel
انا الاصدارة العندي 2003، مجرب عليها الكود وشغال تمام.
توجد طريقة لاتحتاج إلى استخدام COM ولا إلى وجود إكسل اصلاً على الجهاز، ويمكن استخدامها حتى في ASP.NET لتمكين المستخدم من تحميل البيانات على جهازه بهيئة إكسل.
كنت قد وضحت تلك الطريقة في منتدى ASP.NET وهي باختصار عبارة عن إنشاء ملف html عبارة عن جدول ويتم ملء الجدول ببيانات ال Data set ثم يتم حفظ الملف باستخدام xls كامتداد (extention) وبالتالي يمكن فتح هذا الملف في إكسل كأي ملف إكسل عادي.
محمد حمود
ماجستير تقنية المعلومات
بكالوريوس هندسة مدنية
محترف إدارة مشاريع (PMP)
مهندس جودة البرمجيات (CSQE)
مبرمج معتمد من مايكروسوفت (MCP)
متخصص في نظم المعلومات الجغرافية GIS
mohamed.hammod(at)gmail.com
يا سلام لو نبحث شوية عالنت هنعمل أحلي شغل والله بس الكسل وحش قوي :P
مش محتاجه لوجود اكسل عالجهاز غالبا , وببلاش كمان ياه عالدلع :D
تم تعديل هذه المشاركة بواسطة hazzoom في 17 أغسطس 2006 في 20:14
الى الأخ عبد الباسط: انا كمان نسخة ال إكسل اللي عندي هي 2003 و مع ذلك لم تنجح الطريقة...انا جربت كتير حاجات لكن للأسف لم انجح في حل المشكلة.
الى الأخوة محمد حمود و Hazzoom الرجاء توضيح أفكاركم بالنسبة للتحويل بيانات ال DataSet إلى إكسل دون الحاجة الى وجود الإكسل على الجهاز
السلام عليكم
DataSet.WriteXml("c:\waleedhm.xls"){وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

أخى الفاضل ،،،
أكتب الكود الذي تحدث عنده المشكلة
وماهو منطوق رسالة الخطأ
السلام عليكم
يا جماعة لغاية الآن ما زبط معي التحويل من ال Data Set إلى Excel
انا استعملت الكود اللي وضعه الأخ عبد الباسط فوق بس ما زبط....و المسج اللي بتظهلا المشكلة انا وضعتها فوق في أحد ردودي (مشاركة رقم 3)...يا ريت لو حد يساعدني في الموضوع...مهم جدا يا جماعة
هل جربت الـ Component الذي أرسلته لك ؟؟؟ هل جربت كود الأخ waleedhm ؟؟؟
يمكنك استعمال الكريستال ريبورت او الريبورت العادي المرفق مع الفيجوال 2005 وفيه توجد خاصية لتصدير البيانات المعروضة في التقرير الى اكسل او بي دي اف او وورد وغيرها...
اقتباستحية لك اخ عبد الباسطلكن الكود لم ينجح في التحويل و يظهر لي مسج عن المشكلة
و المسج عن المشكلة وضعتلك اياها في الملف المرفق لعلك تجد لي حلا لها
و لك جزيل الشكر و التقدير
هذا هو كود البرنامج ، ومرفق معه ملفات ال DLLs المطلوبة والتي ربما كانت غير متوفرة في جهازك
تم تعديل هذه المشاركة بواسطة abd_albaset في 22 أغسطس 2006 في 11:34
waleedhm كتب:السلام عليكمDataSet.WriteXml("c:\waleedhm.xls")
السلام عليكم
هذا الكود DataSet.WriteXml("c:\waleedhm.xls")
يظهر الخطأ التالي:
An unhandled exception of type 'System.NullReferenceException' occurred in Data_Bank_New.exe
Additional information: Object reference not set to an instance of an object.
hazzoom كتب:يا سلام لو نبحث شوية عالنت هنعمل أحلي شغل والله بس الكسل وحش قوي :Pمش محتاجه لوجود اكسل عالجهاز غالبا , وببلاش كمان ياه عالدلع :D
سلام عليكم
اخي Hazzoom أنا قمت بتحميل ال Component الذي تحدثت عنه و لكن يوجد في الموقع الكثير من الكودات التي تعالج جميع مشاكل التحويل من و الى الاكسل
هل انت قمت بتجربة كود من الموجودات و الذي يحول ال DataSet إلى Excel
اذا قمت بعمل التحويل المطلوب الرجاء منك أن تدلني عليه
مع الشكر لجميع الأخوة
السلام عليكم ورحمة الله وبركاته
بالنسبه لكتابة البيانات من Dataset الي Excel Sheet فليس بالضرورة أن يكون عبارة عن Method تقوم بالتحويل ولكن يمكنك عمل 2 Loops علي جدول معين في الـ Dataset (الـ Loop الأولي علي الـ Columns والثانية علي الـ Rows أو العكس تخير أيهما أفضل لتحصل علي القيمة المفردة) ثم ضع القيمة في الـ Excel Sheet Cells عن طريق الـ GemBox Component , جرب الطريقة دي وقلي النتيجة , مستنيك ;)
*اوعي تزعل من كلمة "بس الكسل وحش قوي " بهزر معاك :D
hazzoom كتب:السلام عليكم ورحمة الله وبركاتهبالنسبه لكتابة البيانات من Dataset الي Excel Sheet فليس بالضرورة أن يكون عبارة عن Method تقوم بالتحويل ولكن يمكنك عمل 2 Loops علي جدول معين في الـ Dataset (الـ Loop الأولي علي الـ Columns والثانية علي الـ Rows أو العكس تخير أيهما أفضل لتحصل علي القيمة المفردة) ثم ضع القيمة في الـ Excel Sheet Cells عن طريق الـ GemBox Component , جرب الطريقة دي وقلي النتيجة , مستنيك ;)
*اوعي تزعل من كلمة "بس الكسل وحش قوي " بهزر معاك :D
صباح الخير اخ Hazzoom
طبعا معلوم انه طريقة التحويل يجب ان يكون فيها 2 loops مثل ما تفضلت حضرتك و صدقني انا جربت كل شيء لكن للأسف لم أنجح
انا قربت أتعقد من الموضوع لأنه ما زبطش معي :( :( :(
انا مطلوب مني اسلّم المشروع الأسبوع الجاي و للسه آخر حاجة في الشروع و اللي هي التحويل لإكسل مش زابطة معي و صرلها اسبوعين بحاول فيها و عالفاضي.
ملاحظة: انا ما ازعلش من الناس الطيبين امثالك و لو شو ما قالو باشا
هل جربت البرنامج اللذي ارفقته في مشاركتي الاخيرة.
abd_albaset كتب:هل جربت البرنامج اللذي ارفقته في مشاركتي الاخيرة.
نعم جربته لكن يظهر لي المشكلة نفسها التي ارسلتها و التي تتحدث عن
Old Format................etc
مع العلم ان نسخة ال اكسل عندي هي 2003 و لقد اضفت ال Components التش تحدثت عنها حضرتك لكن كمان لم تنجح العملية مش عارف ليه
السلام عليكم
بص يا سيدي بعد ما هتقوم بتنصيب الـ GemBox Component , قم باضافه الـ Reference الخاص بها الي المشروع , تمام لحد هنا ؟
وبعد كده اعمل مثلا Method فيها الـ 2 Loops اللي هتجيب بيها القيم من الجدول الموجود في الـ Dataset وآدي طريقة أستخدام الـ Component لاضافة القيم الي Excel Sheet ومنها الي Excel File.xls :
Dim _ExcelFile As New GemBox.Spreadsheet.ExcelFile
Dim _ExcelSheet As GemBox.Spreadsheet.ExcelWorksheet = _ExcelFile.Worksheets.Add("sheet1")
_ExcelSheet.Cells(0, 0).Value = "Wow, You did it !!!"
_ExcelFile.SaveXls("OutPutFile.xls")ورد علي , وان شاء الله المره دي خير , وتسلم مشروعك :D
سلام عليكم
بالنسبة لموضوع التحويل يا جماعة...كل اللي تفضلتو فيه و اقترحتو عليه اعمله انا جربته و ما زبطش... و أنا بآخر فترة طرحت المشكلة هذه على منتديات اجنبية و بالآخر توصلت لسبب المشكلة حسب ما هم قالولي طبعا و حسب ما أنا اقتنعت بوجهة نظرهم و اللي هي:
انه في مشكلة عندي في الكود تدعى Late Binding و اللي هي حسب ما انا فاهم تعني ربط القيم التي تدخل في ملف أل Exce فيما بعد و هي هنا تعني Late Binding و للتذكير فإن الكود الذي استخدمه حاليا و الذي توجد فيه ال Late Binding هو:
Dim ExcelApp As Excel.Application = New Excel.Application
Dim Workbooks As Excel.Workbooks = ExcelApp.Workbooks
Dim Workbook As Excel.Workbook = Workbooks.Add(System.Reflection.Missing.Value)
Dim Sheets As Excel.Sheets = Workbook.Sheets
Dim Worksheet As Excel.Worksheet = Sheets("Sheet1")
Dim RowsCount As Integer = tblname.Rows.Count
Dim ColsCount As Integer = tblname.Columns.Count
Dim ColsCounter As Integer
Dim RowsCounter As Integer
'Columns Header
For ColsCounter = 0 To ColsCount - 1
Worksheet.Cells(1, ColsCounter + 1) = tblname.Columns(ColsCounter).ColumnName.ToString
'First Row for Columns Header
Next
For RowsCounter = 0 To RowsCount - 1
For ColsCounter = 0 To ColsCount - 1
Worksheet.Cells(RowsCounter + 2, ColsCounter + 1) = tblname.Rows(RowsCounter)(ColsCounter)
'Start With the Second Row Because First Row for Columns Header
Next
Next
ExcelApp.Visible = True
ExcelApp.UserControl = True
هل يوجد أي حدا ممكن يفيد بالموضوع هذا...
و شكرا جزيلا لكم
الرجاء المساعدة...لأنه الموضوع مهم
هذا الموضوع مغلق.