منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] كود التصدير الى الاكسل للاستفادة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] كود التصدير الى الاكسل للاستفادة (/showthread.php?tid=44807)



كود التصدير الى الاكسل للاستفادة - AMAZ1972AMAZ - 15-01-23

كود التصدير الى الاكسل من DataGridView

فى التيم سبيس يتم استدعاء Microsoft.Office.Interop

تم نكتب هدا الكود

Public Shared Sub SaveGridToExcel(ByVal DGV As DataGridView) ' صب نسخ من الجريد لإكسل
Try
Dim XCELAPP As Microsoft.Office.Interop.Excel.Application = Nothing
Dim XWORKBOOK As Microsoft.Office.Interop.Excel.Workbook = Nothing
Dim XSHEET As Microsoft.Office.Interop.Excel.Worksheet = Nothing
Dim misValue As Object = System.Reflection.Missing.Value
If DGV.Rows.Count > 0 Then
Dim filename As String = ""
Dim SV As New SaveFileDialog()
SV.Filter = "Excel Files|*.xlsx|Excel 2003|*.xls"

If SV.ShowDialog = DialogResult.OK Then
If DGV.RightToLeft = RightToLeft.Yes Then
DGV.RightToLeft = False 'تغيير اتجاه الجريد من اليمين لليسار لكي لا ينسخ بالمقلوب
filename = SV.FileName
Dim multiselect As Boolean = DGV.MultiSelect
DGV.MultiSelect = True
DGV.SelectAll()
DGV.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
Clipboard.SetDataObject(DGV.GetClipboardContent())
Dim results = System.Convert.ToString(Clipboard.GetData(DataFormats.Text))
DGV.ClearSelection()
DGV.MultiSelect = multiselect
DGV.RightToLeft = RightToLeft.Yes ' ارجاع اتجاه الجريد لليمين
XCELAPP = New Excel.Application()
XWORKBOOK = XCELAPP.Workbooks.Add(misValue)
XCELAPP.DisplayAlerts = False
XCELAPP.Visible = False
XSHEET = XWORKBOOK.ActiveSheet
XSHEET.DisplayRightToLeft = True
XSHEET.PasteSpecial(RightToLeft.Yes)
XWORKBOOK.SaveAs(filename, Excel.XlFileFormat.xlOpenXMLWorkbook)
XWORKBOOK.Close(False)
XCELAPP.Quit()
Else
filename = SV.FileName
Dim multiselect As Boolean = DGV.MultiSelect
DGV.MultiSelect = True
DGV.SelectAll()
DGV.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
Clipboard.SetDataObject(DGV.GetClipboardContent())
Dim results = System.Convert.ToString(Clipboard.GetData(DataFormats.Text))
DGV.ClearSelection()
DGV.MultiSelect = multiselect
XCELAPP = New Excel.Application()
XWORKBOOK = XCELAPP.Workbooks.Add(misValue)
XCELAPP.DisplayAlerts = False
XCELAPP.Visible = False
XSHEET = XWORKBOOK.ActiveSheet
XSHEET.Paste()
XWORKBOOK.SaveAs(filename, Excel.XlFileFormat.xlOpenXMLWorkbook)
XWORKBOOK.Close(False)
XCELAPP.Quit()
End If

If MessageBox.Show("هل تريد فتح الملف ؟", "فتح ملف الأكسل", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading) = MsgBoxResult.Yes Then
Process.Start(SV.FileName)
End If
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(XSHEET)
System.Runtime.InteropServices.Marshal.ReleaseComObject(XWORKBOOK)
System.Runtime.InteropServices.Marshal.ReleaseComObject(XCELAPP)
Catch
End Try
End If
End If

Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub

تم فى زر التصدير نكتب هدا

SaveGridToExcel(DGV)


RE:عفوا أخي لم أفهم قصدك في قولك التيم سبيس - Aisha fa - 23-01-23

لم يتعرف الفيجوال على المكتبة