Re: Como Exportar Gridview a Excel Usando WF con C#? Aquí te envío un ejemplo en VB.net para exportar un dataset a Excel usando uno de varios métodos que existen, que es el que más rápido me ha resultado:
Private Sub Automation_UseArray(ByVal Path_FileName As String, ByVal dsExportar As DataSet)
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
'Iniciar un nuevo libro en Excel.
oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Add
Try
'Crear una matriz con n columnas y m filas.
For Each dtExportar As DataTable In dsExportar.Tables
If dtExportar.Rows.Count > 0 Then
Dim DataArray(dtExportar.Rows.Count - 1, dtExportar.Columns.Count - 1) As Object
For r As Integer = 0 To dtExportar.Rows.Count - 1
For c As Integer = 0 To dtExportar.Columns.Count - 1
DataArray(r, c) = dtExportar.Rows(r)(c)
Next
Next
'Agregar encabezados a la hoja de cálculo en la fila 1.
oSheet = oExcel.ActiveWorkbook.Worksheets.Add()
oSheet.Name = dtExportar.TableName
'oSheet = oBook.Worksheets(1)
For j As Integer = 0 To dtExportar.Columns.Count - 1
oSheet.Range(GetColumn(j + 1) & "1").Value = dtExportar.Columns(j).ColumnName
Next
Dim strRangeColumnasName As String = GetColumn(1) & "1:" & GetColumn(dtExportar.Columns.Count) & "1"
Dim strRangeAllName As String = GetColumn(1) & "1:" & GetColumn(dtExportar.Columns.Count) & (dtExportar.Rows.Count + 1).ToString
oSheet.range(strRangeColumnasName).Font.Bold = True
oSheet.range(strRangeColumnasName).Interior.ColorI ndex = 15
oSheet.range(strRangeColumnasName).Interior.Patter n = 1 'xlSolid
'Transferir la matriz a la hoja de cálculo comenzando en la celda A2.
oSheet.Range("A2").Resize(dtExportar.Rows.Count, dtExportar.Columns.Count).Value = DataArray
'7 - xlEdgeLeft, 8 - xlEdgeTop, 9 - xlEdgeBottom, 10 - xlEdgeRight, 11 - xlInsideVertical, 12 - xlInsideHorizontal
For i As Integer = 7 To 12
With oSheet.Range(strRangeAllName).Borders(i)
.LineStyle = 1 'xlContinuous
.Weight = 2 'xlThin
.ColorIndex = -4105 'xlAutomatic
End With
Next
End If
Next
'Guardar el libro y cerrar Excel.
oBook.SaveAs(Path_FileName)
oSheet = Nothing
oBook = Nothing
oExcel.Quit()
oExcel = Nothing
GC.Collect()
Catch ex As Exception
End Try
End Sub
__________________
Saludos,
Juan Carlos Carballo Quevedo
|