Exportar a Excel Que onda chavos tengo un problema al exportar a excel, la manera en que lo hago me exporta los grids y me los pone en archivos distintos cada uno, lo que quiero es poder poner todos mis grids en un mismo libro de excel pero en distintas hojas, la funcion que tengo es esta,¿ alguien me podria ayudar con esto? gracias por su ayuda (y ps si a alguien le sirve esto para hacer su exportaciones ps ahí sta el codigo por si lo necsitan gracias espero sus respuestas)
'----------------Desde aqui mando a exportar mis grids
Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbexcel.Click
DataTableToExcel(CType(Me.GridView1.DataSource, DataTable))
DataTableToExcel(CType(Me.GridView2.DataSource, DataTable))
DataTableToExcel(CType(Me.GridView3.DataSource, DataTable))
DataTableToExcel(CType(Me.GridView4.DataSource, DataTable))
'---------------------Segunda función
Public Sub TextToExcel(ByVal pFileName As String)
Dim vFormato As Excel.XlRangeAutoFormat
Dim vCultura As System.Globalization.CultureInfo = _
System.Threading.Thread.CurrentThread.CurrentCultu re
Dim valor As Integer
System.Threading.Thread.CurrentThread.CurrentCultu re = _
System.Globalization.CultureInfo.CreateSpecificCul ture("en-US")
Dim Exc As Excel.Application = New Excel.Application
Exc.Workbooks.OpenText(pFileName, , , , _
Excel.XlTextQualifier.xlTextQualifierNone, , True)
Dim Wb As Excel.Workbook = Exc.ActiveWorkbook
Dim Ws As Excel.Worksheet = Wb.ActiveSheet
vFormato = Excel.XlRangeAutoFormat.xlRangeAutoFormatNone
Ws.Range(Ws.Cells(1, 1), Ws.Cells(Ws.UsedRange.Rows.Count, Ws.UsedRange.Columns.Count)).AutoFormat(vFormato)
pFileName = Path.GetTempFileName.Replace("tmp", "xls")
File.Delete(pFileName)
Exc.ActiveWorkbook.SaveAs(pFileName, Excel.XlTextQualifier.xlTextQualifierNone - 1)
Exc.Quit()
Ws = Nothing
Wb = Nothing
Exc = Nothing
GC.Collect()
If valor > -1 Then
Dim p As System.Diagnostics.Process = New System.Diagnostics.Process
p.EnableRaisingEvents = False
p.Start("Excel.exe", pFileName)
End If
System.Threading.Thread.CurrentThread.CurrentCultu re = vCultura
End Sub
'-------Tercera función
Public Sub DataTableToExcel(ByVal pDataTable As DataTable)
Try
Dim vFileName As String = Path.GetTempFileName()
FileOpen(1, vFileName, OpenMode.Output)
Dim sb As String
Dim dc As DataColumn
For Each dc In pDataTable.Columns
sb &= Microsoft.VisualBasic.ControlChars.Tab
Next
PrintLine(1, sb)
Dim i As Integer = 0
Dim dr As DataRow
For Each dr In pDataTable.Rows
i = 0 : sb = ""
For Each dc In pDataTable.Columns
If Not IsDBNull(dr(i)) Then
sb &= CStr(dr(i)) & Microsoft.VisualBasic.ControlChars.Tab
Else
sb &= Microsoft.VisualBasic.ControlChars.Tab
End If
i += 1
Next
PrintLine(1, sb)
Next
FileClose()
TextToExcel(vFileName)
Catch ex As Exception
LabelInfo.Text = ex.Message
End Try
End Sub
__________________
Saludos desde México.... El Borre.
|