التعامل مع مصنفات Excel 2010 من خلال VB.NET

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

التعامل مع مصنفات Excel 2010 من خلال VB.NET

مُساهمة من طرف أحمد مناع في الخميس ديسمبر 12, 2013 2:23 pm

بسم الله الرحمن الرحيم 

أهلا وسهلا بكم إخوانى الكرام ....درس اليوم عن كيفية التعامل مع مصنفات Excel 2010 من خلال VB.NET و سنناقش فى الدرس عدة نقاط ومن اهمها:

1_ من القائمة Projec حدد إضافة مرجع Add Reference ثم من ضمن علامة التبويب COM تحديد موقع المكتبة  14.Microsoft Excel Object Library ، ثم انقر فوق تحديد. كما فى الصورة التالية :


2_  فى قسم التصريحات العامة نقوم باستيراد المكتبة التالية :
الرمز:
Imports Excel = Microsoft.Office.Interop.Excel

3_ لفتح ملف اكسل موجود مسبقا يتم استخدام الكود التالى :
الرمز:
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim xlApp As New Excel.Application
    Dim xlWorkBook As Excel.Workbook

             xlWorkBook = xlApp.Workbooks.Open("C:\Sample.xlsx")
    
        xlApp.Visible = True
    End Sub

_حيث ان فى السطر الاول و الثانى تم تعريف كائنات الاكسل

4_لانشاء ملف أكسل جديد يحتوى على بعض البيانات على النحو التالى :
الرمز:
 Dim xlApp As New Excel.Application
        Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet

        xlWorkBook = xlApp.Workbooks.Add
      
        xlWorkSheet = xlWorkBook.Sheets("Sheet1")

        With xlWorkSheet

            .Range("A1").Value = "Month"
            .Range("A2").Value = "January"
            .Range("A3").Value = "February"
            .Range("A4").Value = "March"
            .Range("A5").Value = "April"

            .Range("B1").Value = "Money Spent"
            .Range("B2").Value = "1000.00"
            .Range("B3").Value = "1500.00"
            .Range("B4").Value = "1200.00"
            .Range("B5").Value = "1100.00"
        End With

حيث أن :
_ فى السطر الاول و الثانى و الثالث تم تعريف كائنات ملف الاكسل
_ فى السطر الرابع و الخامس انشاء ملف الاكسل وبه ورقة العمل Sheet1
_من بداية السطر السادس حتى نهاية الشفرة يتم تعبئة خلايا ورقة العمل Sheet1 ببعض البيانات


5_إدراج عمليات حسابية فى ورقة العمل Sheet1

فى المثال السابق نريد معرفة إجمالى قيمة العامود Money Spent و ايضا حساب المتوسط الحسابى ...ولفعل ذلك نقوم بإضافة السطر البرمجى التالى للشفرة اعلاه على النحو التالى :
الرمز:
Range("A6").Value = "Total Expense"
        .Range("A7").Value = "Average Expense"
 
            .Range("B6").Formula = "=Sum(B2:B5)"
        .Range("B7").Formula = "=Average(B2:B5)"

_ حيث ان فى السطر الاول و الثانى قمنا بكتابة عنوان للعملية الحسابية
_اما فى السطر الثالث و الرابع قمنا باجراء العمليات الحسابية المطلوبة .


6_ تنسيق النصوص فى خلايا ورقة العمل .

الآن دعونا نحاول تنسيق البيانات فى ورقة العمل فى الامثلة السابقة ...أول شيء أن نلاحظ أن النص في الخلايا تجاوز أعمدة الخلية. لذلك سنقوم بإصلاح ذلك و سنقوم ايضا تظليل عناوين الخلايا باللون الاسود مثلا و تغيير لون الخط إلى الأبيض و
تنسيق الارقام وأخيرا خلق الحدود وذلك على النحو التالى :


  • عمل إحتواء تلقائى للخلايا :

الرمز:
.Columns("A:B").EntireColumn.AutoFit()


  • تنسيق خلفية العناوين ولون الخط وحجمة فى الخلايا :

الرمز:
With .Range("A1:B1,A6:A7")
            .Interior.ColorIndex = 1 '<~~ Cell Back Color Black
            With .Font
                .ColorIndex = 2 '<~~ Font Color White
                .Size = 8
                .Name = "Tahoma"
                .Underline = Excel.XlUnderlineStyle.xlUnderlineStyleSingle
                .Bold = True
            End With
        End With

_ فى السطر الاول قمنا بتحديد الخلايا المطلوب تنسيق لها
_ فى السطر الثانى قمنا بتحديد لون خلفية تلك الخلايا
_من السطر الثالث وحتى نهاية الشفرة قمنا بتحديد لون الخط و حجمة و نوعة ...الخ


  • لتنسيق الارقام فى الخلايا

الرمز:
 .Range("B2:B7").NumberFormat = "$#,##0.00"


  • لرسم الحدود على الخلايا مع تحديد لونها

الرمز:
  With .Range("A1:B7")
            With .Borders(Excel.XlBordersIndex.xlEdgeLeft)
                .LineStyle = Excel.XlLineStyle.xlDouble
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = Excel.XlBorderWeight.xlThin
            End With
            With .Borders(Excel.XlBordersIndex.xlEdgeTop)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = Excel.XlBorderWeight.xlThin
            End With
            With .Borders(Excel.XlBordersIndex.xlEdgeBottom)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = Excel.XlBorderWeight.xlThin
            End With
            With .Borders(Excel.XlBordersIndex.xlEdgeRight)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = Excel.XlBorderWeight.xlThin
            End With
            With .Borders(Excel.XlBordersIndex.xlInsideVertical)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = Excel.XlBorderWeight.xlThin
            End With
            With .Borders(Excel.XlBordersIndex.xlInsideHorizontal)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = Excel.XlBorderWeight.xlThin
            End With
        End With



7_إنشاء و تنسيق البيانات فى جداول

ما كنا نقوم به حتى الآن هو وضع البيانات في  خلايا ورقة عمل Excel ثم تنسيق البيانات لتبدو وكأنها جدول أنيق ...لكننا نستطيع انشاء جدول و تنسيقة باستخدام الكود التالى :

الرمز:
xlWorkBook = xlApp.Workbooks.Add
 
    xlWorkSheet = xlWorkBook.Sheets("Sheet1")
 
    With xlWorkSheet
    
        .Range("A1").Value = "Month"
        .Range("A2").Value = "January"
        .Range("A3").Value = "February"
        .Range("A4").Value = "March"
        .Range("A5").Value = "April"
 
        .Range("B1").Value = "Money Spent"
        .Range("B2").Value = "1000.00"
        .Range("B3").Value = "1500.00"
        .Range("B4").Value = "1200.00"
        .Range("B5").Value = "1100.00"
 
         .Range("A6").Value = "Total Expense"
        .Range("A7").Value = "Average Expense"
 
      
        .Range("B6").Formula = "=Sum(B2:B5)"
        .Range("B7").Formula = "=Average(B2:B5)"
      
        .ListObjects.Add(Excel.XlListObjectSourceType.xlSrcRange, .Range("$A$1:$B$7"), , Excel.XlYesNoGuess.xlYes).Name = "Table1"
 
        
        .ListObjects("Table1").TableStyle = "TableStyleLight8"
 
      
        With .Range("A6:A7")
            .Interior.ColorIndex = 1 '<~~ Cell Back Color Black
            With .Font
                .ColorIndex = 2 '<~~ Font Color White
                .Size = 8
                .Name = "Tahoma"
                .Underline = Excel.XlUnderlineStyle.xlUnderlineStyleSingle
                .Bold = True
            End With
        End With
 
    
        .Columns("A:B").EntireColumn.AutoFit()
    End With


ولنا تكلمة

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: التعامل مع مصنفات Excel 2010 من خلال VB.NET

مُساهمة من طرف VB.NET في الجمعة مارس 27, 2015 6:54 pm

جزاكم الله خيرا

VB.NET
المراقبين
المراقبين

تاريخ التسجيل : 18/02/2011
المساهمات : 117
النقاط : 185
التقيم : 6
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى