تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] كود لتصدير للاكسيل مع الحماية
#1
السلام عليكم ،،
ارجو المساعدة في كود لتصدير للاكسيل مع الحماية للبيانات  من التعديل 
والسلام عليكم
الرد }}}
تم الشكر بواسطة:
#2
(02-03-26, 01:29 PM)MOHAMMED ALZWI كتب : السلام عليكم ،،
ارجو المساعدة في كود لتصدير للاكسيل مع الحماية للبيانات  من التعديل 
والسلام عليكم

عليكم السلام و رحمة الله و بركاته
السؤال غير واضح
التصدير من اين ؟
طريقة احترافية وسريعة جداً لتصدير البيانات إلى Microsoft Excel في VB.NET باستخدام مكتبة EPPlus.
هذه الطريقة أسرع بكثير من Interop وتستطيع تصدير 100 ألف سجل خلال ثوان. 

اولاُ قم بتثبيت المكتبة EPPlus من NuGet Package Manager :
PHP كود :
Imports OfficeOpenXml
Imports OfficeOpenXml
.Style
Imports System
.IO
Public Sub ExportToExcel(dt As DataTable)
    Dim filePath As String "C:\Report.xlsx"
    ExcelPackage.LicenseContext LicenseContext.NonCommercial
    Using package 
As New ExcelPackage()
        Dim ws package.Workbook.Worksheets.Add("Data")
        'تصدير البيانات دفعة واحدة 
        ws.Cells("A1").LoadFromDataTable(dt, True)
        '
تنسيق العناوين
        ws
.Row(1).Style.Font.Bold True
        
'قفل الخلايا
        ws.Cells.Style.Locked = True
        '
حماية الورقة
        ws
.Protection.IsProtected True
        ws
.Protection.SetPassword("1234")
        'منع التعديل
        ws.Protection.AllowDeleteRows = False
        ws.Protection.AllowInsertRows = False
        ws.Protection.AllowFormatCells = False
        '
حفظ الملف
        File
.WriteAllBytes(filePathpackage.GetAsByteArray())
    End Using
    MsgBox
("تم تصدير الملف بنجاح")
End Sub 

مثال إذا كانت البيانات في DataGridView
PHP كود :
Dim dt As New DataTable()

For 
Each col As DataGridViewColumn In DataGridView1.Columns
    dt
.Columns.Add(col.HeaderText)
Next

For Each row As DataGridViewRow In DataGridView1.Rows
    
If Not row.IsNewRow Then
        Dim dr 
dt.NewRow()
        For 0 To DataGridView1.Columns.Count 1
            dr
(i) = row.Cells(i).Value
        Next
        dt
.Rows.Add(dr)
    End If
Next

ExportToExcel
(dt
[صورة مرفقة: 177461173141861.gif]
الرد }}}
#3
(06-03-26, 12:01 AM)Amir_Alzubidy كتب :
(02-03-26, 01:29 PM)MOHAMMED ALZWI كتب : السلام عليكم ،،
ارجو المساعدة في كود لتصدير للاكسيل مع الحماية للبيانات  من التعديل 
والسلام عليكم

عليكم السلام و رحمة الله و بركاته
السؤال غير واضح
التصدير من اين ؟
طريقة احترافية وسريعة جداً لتصدير البيانات إلى Microsoft Excel في VB.NET باستخدام مكتبة EPPlus.
هذه الطريقة أسرع بكثير من Interop وتستطيع تصدير 100 ألف سجل خلال ثوان. 

اولاُ قم بتثبيت المكتبة EPPlus من NuGet Package Manager :
PHP كود :
Imports OfficeOpenXml
Imports OfficeOpenXml
.Style
Imports System
.IO
Public Sub ExportToExcel(dt As DataTable)
    Dim filePath As String "C:\Report.xlsx"
    ExcelPackage.LicenseContext LicenseContext.NonCommercial
    Using package 
As New ExcelPackage()
        Dim ws package.Workbook.Worksheets.Add("Data")
        'تصدير البيانات دفعة واحدة 
        ws.Cells("A1").LoadFromDataTable(dt, True)
        '
تنسيق العناوين
        ws
.Row(1).Style.Font.Bold True
        
'قفل الخلايا
        ws.Cells.Style.Locked = True
        '
حماية الورقة
        ws
.Protection.IsProtected True
        ws
.Protection.SetPassword("1234")
        'منع التعديل
        ws.Protection.AllowDeleteRows = False
        ws.Protection.AllowInsertRows = False
        ws.Protection.AllowFormatCells = False
        '
حفظ الملف
        File
.WriteAllBytes(filePathpackage.GetAsByteArray())
    End Using
    MsgBox
("تم تصدير الملف بنجاح")
End Sub 

مثال إذا كانت البيانات في DataGridView
PHP كود :
Dim dt As New DataTable()

For 
Each col As DataGridViewColumn In DataGridView1.Columns
    dt
.Columns.Add(col.HeaderText)
Next

For Each row As DataGridViewRow In DataGridView1.Rows
    
If Not row.IsNewRow Then
        Dim dr 
dt.NewRow()
        For 0 To DataGridView1.Columns.Count 1
            dr
(i) = row.Cells(i).Value
        Next
        dt
.Rows.Add(dr)
    End If
Next

ExportToExcel
(dt

شكرا اخي الكريم مشاركتك

تصدير البيانات من  DataGridView الى اكسيل 
اقصد بالحماية المستند من التعديل بعد التصدير من النظام  حتى لا يتم تغير اي بيانات في المستند 
ولا يمكن للموظف ان يقوم باي تغير على المستند
وتكون البيانات صحيحة  100 %

فيجوال بيسك 2010
الرد }}}
تم الشكر بواسطة:
#4
الاسطر المسؤولة عن الحماية موجودة في الكود السابق

كود :
        'حماية الورقة
        ws.Protection.IsProtected = True
        ws.Protection.SetPassword("1234")
        'منع التعديل
        ws.Protection.AllowDeleteRows = False
        ws.Protection.AllowInsertRows = False
        ws.Protection.AllowFormatCells = False

كلمة المرور في المثال هي "1234" — غيّرها إلى ما تريد.
الخيارات الشائعة للـ Protection التي يمكنك التحكم بها:
AllowSelectLockedCells=trueالسماح بتحديد الخلايا المقفلة
AllowSelectUnlockedCell=strueالسماح بتحديد الخلايا غير المقفلة
AllowInsertRows=falseالسماح بإدراج صفوف
AllowDeleteRows=falseالسماح بحذف صفوف
AllowFormatCells=falseالسماح بتنسيق الخلايا
AllowSort=falseالسماح بالفرز
AllowFilter=falseالسماح باستخدام الفلاتر
الرد }}}
تم الشكر بواسطة: أبو خالد الشكري , MOHAMMED ALZWI


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Exclamation [VB.NET] اريد كود لتصدير البيانات من DataGridView الى ملف Excel zazasami 1 612 04-08-24, 09:15 PM
آخر رد: mrfenix93
  [VB.NET] طلب تعديل كود لتصدير بيانات داتاجريدفيو الي ملف وورد moftah70 2 1,101 03-10-22, 01:36 AM
آخر رد: أبووسم
  [vb6.0] هذا كود سريع جدا لتصدير البيانات الى اكسيل بس البيانات بتظهر فى شكل نص فى اكسيل اريد grg_dd 1 1,280 11-02-22, 01:21 AM
آخر رد: grg_dd
  [VB.NET] تصدير الداتاجريد فيو للاكسيل احمد 2021 5 2,040 18-08-21, 08:47 PM
آخر رد: يونس علي
  هل من طريقه بسسيطه لتصدير بيانات فى فورم بالادوات الى PDF خالد كامل1 0 1,210 19-06-21, 08:20 AM
آخر رد: خالد كامل1
Information [VB.NET] [مساعدة] ... شباب كيف اربط المشروع ب ملف Excel لتصدير البيانات فيه..؟ Mahmoud41 1 1,604 11-02-21, 10:04 PM
آخر رد: abojudey
  [VB.NET] سؤال هام بخصوص برامج الحماية للسورس كود محمد اسماعيل 0 1,067 20-01-21, 03:09 AM
آخر رد: محمد اسماعيل
  برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل new_programer 7 2,643 15-02-19, 08:09 PM
آخر رد: new_programer
  [VB.NET] تصدير صفوف معينة للاكسيل محمد اسماعيل 8 4,044 15-10-18, 03:28 AM
آخر رد: محمد اسماعيل
  استفسار بخصوص الحماية ارجو الرد من الخبراء abo philomena 7 3,152 10-09-18, 08:24 AM
آخر رد: elgokr

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم