' 14/05/2027 V 5.0.6 Correcciones en ienumerableaexel
This commit is contained in:
@@ -273,36 +273,60 @@ Namespace Utilidades
|
||||
Public Shared Sub IEnumerableAExcel(Of t)(Datos As IEnumerable(Of t), Fichero As String)
|
||||
Dim wb As New ClosedXML.Excel.XLWorkbook
|
||||
Dim dt = tsl5.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos)
|
||||
wb.AddWorksheet(dt)
|
||||
Dim ws = wb.AddWorksheet(dt)
|
||||
ws.Columns().AdjustToContents()
|
||||
wb.SaveAs(Fichero)
|
||||
End Sub
|
||||
|
||||
Public Shared Sub IEnumerableAExcel(Of t)(Datos As List(Of t), Fichero As String)
|
||||
Dim wb As New ClosedXML.Excel.XLWorkbook
|
||||
Dim dt = tsl5.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos)
|
||||
wb.AddWorksheet(dt)
|
||||
Dim ws = wb.AddWorksheet(dt)
|
||||
ws.Columns().AdjustToContents()
|
||||
wb.SaveAs(Fichero)
|
||||
End Sub
|
||||
Public Shared Function IEnumerableAExcel(Of t)(Datos As List(Of t)) As Byte()
|
||||
Dim wb As New ClosedXML.Excel.XLWorkbook
|
||||
Dim dt = tsl5.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos)
|
||||
wb.AddWorksheet(dt)
|
||||
Dim ws = wb.AddWorksheet(dt)
|
||||
ws.Columns().AdjustToContents()
|
||||
Dim ms As New MemoryStream
|
||||
wb.SaveAs(ms)
|
||||
ms.Position = 0
|
||||
Return ms.ToArray
|
||||
End Function
|
||||
Public Shared Function ListaIEnumerableAExcel(Of t)(Datos As List(Of List(Of t)), NombreTablas As List(Of String)) As Byte()
|
||||
Public Shared Function ListaIEnumerableAExcel(Of T)(Datos As List(Of List(Of T)), NombreTablas As List(Of String)) As Byte()
|
||||
If Datos Is Nothing OrElse NombreTablas Is Nothing Then
|
||||
Throw New ArgumentNullException("Los parámetros no pueden ser Nothing.")
|
||||
End If
|
||||
|
||||
If Datos.Count <> NombreTablas.Count Then
|
||||
Throw New ArgumentException("La cantidad de listas y nombres de tablas no coincide.")
|
||||
End If
|
||||
|
||||
Dim wb As New ClosedXML.Excel.XLWorkbook
|
||||
|
||||
For i = 0 To Datos.Count - 1
|
||||
Dim tabla = Datos(i)
|
||||
Dim dt = tsl5.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(tabla)
|
||||
wb.AddWorksheet(dt, NombreTablas(i))
|
||||
|
||||
' Evitar error si la lista está vacía
|
||||
If tabla Is Nothing OrElse tabla.Count = 0 Then
|
||||
Dim wsVacio = wb.AddWorksheet(NombreTablas(i))
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim dt = tsl5.Extensiones.IEnumerableExtensions.CopyToDataTable(Of T)(tabla)
|
||||
Dim ws = wb.AddWorksheet(dt, NombreTablas(i))
|
||||
|
||||
' Autoajuste de columnas
|
||||
ws.Columns().AdjustToContents()
|
||||
Next
|
||||
Dim ms As New MemoryStream
|
||||
wb.SaveAs(ms)
|
||||
ms.Position = 0
|
||||
Return ms.ToArray
|
||||
|
||||
Using ms As New MemoryStream
|
||||
wb.SaveAs(ms)
|
||||
Return ms.ToArray()
|
||||
End Using
|
||||
End Function
|
||||
|
||||
End Class
|
||||
End Namespace
|
||||
Reference in New Issue
Block a user