PDA

View Full Version : انتقال اطلاعات دیتاگرید ویو به یک فایل اکسل



niknam_mh
جمعه 29 دی 1391, 07:59 صبح
سلام دوستان
چطوری میشه اطلاعات درون یک دیتاگرید ویو را به یه فایل اکسل انتقال داد.
لطفا اگر کسی میدونه راهنمایی کنه نیاز مبرم دارم.

mohsen22
جمعه 29 دی 1391, 09:06 صبح
عزیزم اینم (http://barnamenevis.org/showthread.php?379342-Export-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A8%D9%87-Excel)اخیرا مطرح شده اما من نتونستم ازش استفاده کنم . امیدوارم به یه جایی برسه

shahryari
جمعه 29 دی 1391, 10:43 صبح
سلام ابتدا اين سه روال را پرو‍ه تان اضافه كنيد
#Region "Export Excel Code"

Private Sub grid_ToExcel_Export(ByVal FileName As String, ByVal Data_GridView As DataGridView)
Dim sb As New System.Text.StringBuilder
Try
Dim intColumn, intColumnValue As Integer
Dim row As DataGridViewRow
For intColumn = 0 To Data_GridView.Columns.Count - 1
sb.Append(Data_GridView.Columns(intColumn).HeaderT ext)
If intColumnValue <> Data_GridView.Columns.Count - 1 Then
sb.Append(vbTab)
End If
Next
sb.Append(vbCrLf)
For Each row In Data_GridView.Rows
For intColumnValue = 0 To Data_GridView.Columns.Count - 1
sb.Append(StrConv(IIf(IsDBNull(row.Cells(intColumn Value).Value), "", row.Cells(intColumnValue).Value), VbStrConv.None))
If intColumnValue <> Data_GridView.Columns.Count - 1 Then
sb.Append(vbTab)
End If
Next
sb.Append(vbCrLf)
Next
SaveExcel(FileName, sb)
Catch ex As Exception
Throw
Finally
Data_GridView = Nothing
sb = Nothing
End Try
End Sub

Private Sub SaveExcel(ByVal fpath As String, ByVal sb As System.Text.StringBuilder)
Dim fsFile As New FileStream(fpath, FileMode.Create, FileAccess.Write)
Dim strWriter As New StreamWriter(fsFile, System.Text.Encoding.Unicode)
Try
With strWriter
.BaseStream.Seek(0, SeekOrigin.End)
.WriteLine(sb)
.Close()
End With
Catch e As Exception
MsgBox(e.ToString)
Finally
sb = Nothing
strWriter = Nothing
fsFile = Nothing
End Try
End Sub
Public Sub grid_export_module_main(ByVal dg As DataGridView)
Dim oo As New SaveFileDialog
Try
oo.Filter = "فایل اکسل|*.xls"
If oo.ShowDialog = Windows.Forms.DialogResult.OK Then
grid_ToExcel_Export(oo.FileName.Replace(".xls", "") + ".xls", dg)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

#End Region
سپس يك دكمه با نام "ذخيره در اكسل" يا امثال آن به فرم اضافه كنيد
در رويداد كليك اين باتن كد زير را بنويسيد:
If DataGridView1.RowCount = 0 Then
MsgBox("فاقد اطلاعات")
Exit Sub
End If
grid_export_module_main(DataGridView1)
فرض را بر اين ميگيريم كه ديتا گريدي كه ميخواهيد اطلاعاتش را اكسپورت كنيد نامش "DataGridView1" است
يك مسير از شما ميخواهد و نام فايل اكسل را و ديگر هيچ.....
موفق باشيد

shahryari
جمعه 29 دی 1391, 11:03 صبح
اين هم يك نمونه براي دانلود
http://forum.oranustalk.ir/uploaded/3_01358496341.zip