![]() |
|
|||||||
| برمجة قواعد البيانات والتقارير تتناول مواضيع هذا القسم برمجة قواعد البيانات وتطبيقاتها بواسطة تقنية ADO.NET وكذلك التقارير بالتقنيات المختلفة سواء Microsoft ReportViewer أو CrystalReport بغض النظر عن اللغة المستخدمه في ذلك |
| آخر 10 مشاركات |
|
|
|
LinkBack | أدوات الموضوع | انواع عرض الموضوع |
|
|
#1 (permalink) |
|
كبير العمداء
الجنس: ذكـــر الجنسية: عمان بلد الإقامة: عمان الوظيفة: أخرى المؤهل الدراسي: الثانوية العامة التخصص العلمي: الهندسة الميكانيكية كيف عرفت عن موقعنا: وصلة من موقع اخر تاريخ التسجيل: May 2004
المشاركات: 6,651
شكراً: 48
تم شكره 72 مرة في 52 مشاركة
معدل تقييم المستوى:10
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
طريقة عمل تقارير بواسطة Excel 2007
أصبح ترميز XML قياسيا فى تبادل وتداول البيانات وقامت الشركات الكبرى مثل مايكروسوفت بدعمة فى تطبيقاتها
كنا فى السابق نستخدم مكونات com للتعامل مع برامج أوفيس المختلفة والتى كانت تكتب ملفاتها بترميز ثنائى binary اليوم أصبح بإمكاننا كتابة ملفات أوفيس كاملة من تطبيقاتنا بإستخدام ترميز XML الخاص بالأوفيس والتابع لمايكروسوفت فى مثالنا هنا سنستخدم مكتبة جاهزة تقوم بذلك نيابة عنا ويمكننا أن نقوم نحن بذلك بدراستنا لترميز XML الخاص بمايكروسوفت أوفيس إسم المكتبة CarlosAg.ExcelXmlWriter.dll المكتبة بالمرفقات طريقة العمل • سنقوم بكتابة جدول بسيط فى data set يحتوى على معلومات أسماء الكتب ومؤلفيها • ثم سنقوم بحفظ محتويات هذا المجلد لملف إكسل على المسار c:\vbm.xls الشكل النهائى للتطبيق ![]() لتحميل المثال انقر هنا خطوات العمل 1. ننشأ تطبيق ويندوز جديد 2. نضع على التطبيق مكون datagridview ومكون زر أمر button 3. نجعل خاصية dock لزر الأمر على القيمة Bottom 4. نجعل خاصية dock لجدول عرض البيانات على القيمة fill 5. نبدأ فى وضع الكود ¨ أولا نقوم بعمل جدول البيانات الخاص بنا ومن ثم نعرضة على النموذج ¨ ثانيا نقوم بعمل مرجع لمكتبة CarlosAg.ExcelXmlWriter.dll ¨ عن طريق add reverence ![]() اكواد البرنامج : كود:
@@@@@@@@@@@@@@@@@@@@@
'الموضوع : : أساليب حفظ والتعامل مع ملفات ومايكروسوفت أوفيس بترميز xml
' التطبيق : visual basic 2005 – 2008
' : محمد م م - [mmmdev]
' : تطبيق بسيط لحفظ بيانات جدول بيانات بسيط فى صورة ملف إكسل بتنسيق xls
' www.vb4arab.com
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Imports System.Data
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim books_ds As New DataSet
' تعريف متغير من نوع فئة البيانات
Dim books_tb_a As New DataTable("Books")
'تعريف متغير من من جدول البيانات وسيكون الجدول الخاص بنا
'---------------------------------------------
' تعريف الحقول الخاصة بالجدول وهى حقول كود التعريف وإسم الكتاب والمؤلف
With books_tb_a.Columns.Add("id", GetType(Integer))
' السماح بزيادة تلقائية لرقم التعريف
.AutoIncrement = True
' الزيادة تكون بمقدار 1
.AutoIncrementSeed = 1
' عدم السماح بالقيمة الخالية
.AllowDBNull = False
' لا يمكن التكرار
.Unique = True
End With
With books_tb_a.Columns.Add("book", GetType(String))
'أقصى حجم 50
.MaxLength = 50
End With
With books_tb_a.Columns.Add("author", GetType(String))
.MaxLength = 50
End With
'====================================================
' ملا البيانات والسجلات
' وربط كائن البيانات بجدول البيانات
books_ds.Tables.Add(books_tb_a)
'''''''''''''
books_tb_a.Rows.Add(New Object() {1, "موسوعة اليهود واليهودية والصهيونية ", "د/عبد الوهاب المسيرى"})
books_tb_a.Rows.Add(New Object() {2, "حوار مع صديقى الملحد ", "د/مصطفى محمود"})
books_tb_a.Rows.Add(New Object() {3, "العبقريات ", "عباس محمود العقاد"})
books_tb_a.Rows.Add(New Object() {4, "قصة الحضارة ", "ويل ديورانت"})
books_tb_a.Rows.Add(New Object() {5, "الأنسان الحائر بين العلم والخرافة ", "د/عبد المسحن صالح"})
books_tb_a.Rows.Add(New Object() {6, "موسوعة مصر القدية ", "د/سليم حسن"})
books_tb_a.Rows.Add(New Object() {7, "رسالة التوحيد ", "العلامة الشيخ محمد عبدة"})
books_tb_a.Rows.Add(New Object() {8, "حول العالم فى 80 يوم ", "جول فيرن"})
books_tb_a.Rows.Add(New Object() {9, "اليهود إنثروبولوجيا ", "د/جمال حمدان"})
books_tb_a.Rows.Add(New Object() {10, "معجزة القرأن ", "العلامة الشيخ الشعراوى"})
books_tb_a.Rows.Add(New Object() {11, "أناكارينا ", "تولستوى"})
books_tb_a.Rows.Add(New Object() {12, "إقتصاد مصر كيف ضاع ", "فاروق جويدة"})
books_tb_a.Rows.Add(New Object() {13, "البخلاء ", "الجاحظ"})
''''''''''''
' ربط جدول عرض البيانات على النموذج لدينا بكائن فئة البيانات لعرض البيانات منة
Me.DataGridView1.DataSource = books_ds
Me.DataGridView1.DataMember = books_tb_a.ToString
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fileName As String = "c:\vbm.xls"
' ExcelGeneratorإستخدام فئة
' لتصدير البيانات وإنشاء ملف xls
ExcelGenerator.Generate(DataGridView1).Save(fileName)
' إستدعاء التطبيق إكسل
Process.Start(fileName)
End Sub
End Class
كود:
Imports CarlosAg.ExcelXmlWriter
' إستدعاء فضاء الأسماء الخاص بمكتبة التعامل مع xls
Imports System
Imports System.Drawing
Imports System.Xml
Imports System.Windows.Forms
Public Class ExcelGenerator
' Methods
' تكوين شكل الملف xls
'مع وضع البارميترز حسب برنامجنا المستخدم
Public Shared Function Generate(ByVal dataGridView As DataGridView) As Workbook
Dim workbook As New Workbook
Dim worksheet As Worksheet = workbook.Worksheets.Add("Sheet 1")
Dim worksheetRow As New WorksheetRow
Dim dataGridViewColumn As DataGridViewColumn
For Each dataGridViewColumn In dataGridView.Columns
worksheet.Table.Columns.Add(New WorksheetColumn(dataGridViewColumn.Width))
worksheetRow.Cells.Add(New WorksheetCell(dataGridViewColumn.HeaderText))
Next
worksheet.Table.Rows.Insert(0, worksheetRow)
Dim worksheetDefaultStyle As WorksheetStyle = ExcelGenerator.GetWorksheetStyle(dataGridView.DefaultCellStyle, "Default")
workbook.Styles.Add(worksheetDefaultStyle)
Dim rowIndex As Integer
For rowIndex = 0 To dataGridView.RowCount - 1
worksheetRow = worksheet.Table.Rows.Add
Dim columnIndex As Integer
For columnIndex = 0 To dataGridView.ColumnCount - 1
Dim cell As DataGridViewCell = dataGridView.Item(columnIndex, rowIndex)
Dim cellStyle As WorksheetStyle = ExcelGenerator.GetWorksheetStyle(cell.InheritedStyle, String.Concat(New Object() {"column", columnIndex, "row", rowIndex}))
If (Not cellStyle Is Nothing) Then
workbook.Styles.Add(cellStyle)
Else
cellStyle = worksheetDefaultStyle
End If
Dim dataType As DataType = ExcelGenerator.GetDataType(cell.ValueType)
worksheetRow.Cells.Add(cell.FormattedValue.ToString, dataType, cellStyle.ID)
Next columnIndex
Next rowIndex
Return workbook
End Function
Private Shared Function GetColorName(ByVal color As Color) As String
Return ("#" & color.ToArgb.ToString("X").Substring(2))
End Function
Private Shared Function GetDataType(ByVal valueType As Type) As DataType
If (Not valueType Is GetType(DateTime)) Then
If (valueType Is GetType(String)) Then
Return DataType.String
End If
If ((((((valueType Is GetType(SByte)) OrElse (valueType Is GetType(Byte))) OrElse ((valueType Is GetType(Short)) OrElse (valueType Is GetType(UInt16)))) OrElse (((valueType Is GetType(Integer)) OrElse (valueType Is GetType(UInt32))) OrElse ((valueType Is GetType(Long)) OrElse (valueType Is GetType(UInt64))))) OrElse ((valueType Is GetType(Single)) OrElse (valueType Is GetType(Double)))) OrElse (valueType Is GetType(Decimal))) Then
Return DataType.Number
End If
End If
Return DataType.String
End Function
Private Shared Function GetWorksheetStyle(ByVal dataGridViewCellStyle As DataGridViewCellStyle, ByVal id As String) As WorksheetStyle
Dim worksheetStyle As WorksheetStyle = Nothing
If (Not dataGridViewCellStyle Is Nothing) Then
worksheetStyle = New WorksheetStyle(id)
If Not dataGridViewCellStyle.BackColor.IsEmpty Then
worksheetStyle.Interior.Color = ExcelGenerator.GetColorName(dataGridViewCellStyle.BackColor)
worksheetStyle.Interior.Pattern = StyleInteriorPattern.Solid
End If
If Not dataGridViewCellStyle.ForeColor.IsEmpty Then
worksheetStyle.Font.Color = ExcelGenerator.GetColorName(dataGridViewCellStyle.ForeColor)
End If
If (Not dataGridViewCellStyle.Font Is Nothing) Then
worksheetStyle.Font.Bold = dataGridViewCellStyle.Font.Bold
worksheetStyle.Font.FontName = dataGridViewCellStyle.Font.Name
worksheetStyle.Font.Italic = dataGridViewCellStyle.Font.Italic
worksheetStyle.Font.Size = CInt(dataGridViewCellStyle.Font.Size)
worksheetStyle.Font.Strikethrough = dataGridViewCellStyle.Font.Strikeout
worksheetStyle.Font.Underline = IIf(dataGridViewCellStyle.Font.Underline, UnderlineStyle.Single, UnderlineStyle.None)
End If
worksheetStyle.Borders.Add(StylePosition.Top, LineStyleOption.Continuous, 1, "Black")
worksheetStyle.Borders.Add(StylePosition.Right, LineStyleOption.Continuous, 1, "Black")
worksheetStyle.Borders.Add(StylePosition.Bottom, LineStyleOption.Continuous, 1, "Black")
worksheetStyle.Borders.Add(StylePosition.Left, LineStyleOption.Continuous, 1, "Black")
End If
Return worksheetStyle
End Function
End Class
الموضوع منقول بتصرف وهذه هي المصادر : تطبيق بسيط لحفظ بيانات جدول بيانات بسيط فى صورة ملف إكسل بتنسيق Xls - منتدى فيجوال بيسك CarlosAg Excel Xml Writer Library |
|
|
|
| مرحبا عزيزي الزائر |
| لمشاهدة باقي ردود هذا الموضوع, من فضلك قم بتسجيل الدخول او اضغط هنا للتسجيل. |
|
| الكلمات الدلالية (Tags) |
| .net, dot net, excel, open xml, xml |
| أدوات الموضوع | |
| انواع عرض الموضوع | |
|
|
|
|
|