206-05-22 V1.3.11 tamaño de columnas automatico en ienumerableaexcel

This commit is contained in:
2026-05-22 19:25:09 +02:00
parent 93a2a4936e
commit f75f7a9022
2 changed files with 36 additions and 11 deletions

View File

@@ -183,36 +183,60 @@ Namespace Utilidades
Public Shared Sub IEnumerableAExcel(Of t)(Datos As IEnumerable(Of t), Fichero As String) Public Shared Sub IEnumerableAExcel(Of t)(Datos As IEnumerable(Of t), Fichero As String)
Dim wb As New ClosedXML.Excel.XLWorkbook Dim wb As New ClosedXML.Excel.XLWorkbook
Dim dt = tsUtilidades.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos) Dim dt = tsUtilidades.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos)
wb.AddWorksheet(dt) Dim ws = wb.AddWorksheet(dt)
ws.Columns().AdjustToContents()
wb.SaveAs(Fichero) wb.SaveAs(Fichero)
End Sub End Sub
Public Shared Sub IEnumerableAExcel(Of t)(Datos As List(Of t), Fichero As String) Public Shared Sub IEnumerableAExcel(Of t)(Datos As List(Of t), Fichero As String)
Dim wb As New ClosedXML.Excel.XLWorkbook Dim wb As New ClosedXML.Excel.XLWorkbook
Dim dt = tsUtilidades.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos) Dim dt = tsUtilidades.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos)
wb.AddWorksheet(dt) Dim ws = wb.AddWorksheet(dt)
ws.Columns().AdjustToContents()
wb.SaveAs(Fichero) wb.SaveAs(Fichero)
End Sub End Sub
Public Shared Function IEnumerableAExcel(Of t)(Datos As List(Of t)) As Byte() Public Shared Function IEnumerableAExcel(Of t)(Datos As List(Of t)) As Byte()
Dim wb As New ClosedXML.Excel.XLWorkbook Dim wb As New ClosedXML.Excel.XLWorkbook
Dim dt = tsUtilidades.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos) Dim dt = tsUtilidades.Extensiones.IEnumerableExtensions.CopyToDataTable(Of t)(Datos)
wb.AddWorksheet(dt) Dim ws = wb.AddWorksheet(dt)
ws.Columns().AdjustToContents()
Dim ms As New MemoryStream Dim ms As New MemoryStream
wb.SaveAs(ms) wb.SaveAs(ms)
ms.Position = 0 ms.Position = 0
Return ms.ToArray Return ms.ToArray
End Function 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 Dim wb As New ClosedXML.Excel.XLWorkbook
For i = 0 To Datos.Count - 1 For i = 0 To Datos.Count - 1
Dim tabla = Datos(i) Dim tabla = Datos(i)
Dim dt = tsUtilidades.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 = tsUtilidades.Extensiones.IEnumerableExtensions.CopyToDataTable(Of T)(tabla)
Dim ws = wb.AddWorksheet(dt, NombreTablas(i))
' Autoajuste de columnas
ws.Columns().AdjustToContents()
Next Next
Dim ms As New MemoryStream
wb.SaveAs(ms) Using ms As New MemoryStream
ms.Position = 0 wb.SaveAs(ms)
Return ms.ToArray Return ms.ToArray()
End Using
End Function End Function
End Class End Class
End Namespace End Namespace

View File

@@ -15,11 +15,12 @@
<RootNamespace>tsWPFCore</RootNamespace> <RootNamespace>tsWPFCore</RootNamespace>
<PackageId>tsWPFCore</PackageId> <PackageId>tsWPFCore</PackageId>
<PackageTags>net8.0-windows, libreria</PackageTags> <PackageTags>net8.0-windows, libreria</PackageTags>
<Version>1.3.10</Version> <Version>1.3.11</Version>
<Authors>Manuel</Authors> <Authors>Manuel</Authors>
<Company>Tecnosis S.A</Company> <Company>Tecnosis S.A</Company>
<Description>Utilidades para aplicaciones WPF.</Description> <Description>Utilidades para aplicaciones WPF.</Description>
<PackageReleaseNotes> <PackageReleaseNotes>
- 2026-05-22 V1.3.11 tamaño de columnas automatico en ienumerableaexcel
- 2026-03-12 V1.3.10 Se lanza el evento campoactualizado si se ha lanzado con FuerzaValidarControl - 2026-03-12 V1.3.10 Se lanza el evento campoactualizado si se ha lanzado con FuerzaValidarControl
- 2026-01-19 V1.3.9 Se Corrige hint de previsualizar - 2026-01-19 V1.3.9 Se Corrige hint de previsualizar
- 2025-10-20 V1.3.8 Se añade botón de previsualizar - 2025-10-20 V1.3.8 Se añade botón de previsualizar