without sirve que programacion para lenguaje historia filename extension exist caracteristicas c# excel components

c# - sirve - ¿Alguien tiene puntos de referencia de componentes.NET Excel IO?



lenguaje de programacion c# caracteristicas (3)

No puede ayudarlo con su pregunta original, pero ¿sabe que puede acceder a los archivos de Excel usando OleDbConnection y, por lo tanto, tratarla como una base de datos? A continuación, puede leer las hojas de trabajo en una tabla de datos, realizar todos los cambios que necesita a los datos en su aplicación, y luego guardar todo de nuevo en el archivo usando un OleDbConnection.

Necesito acceder a los libros de Excel desde .Net. Sé todo sobre las diferentes formas de hacerlo (las escribí en una publicación de blog ), y sé que usar un componente .Net nativo será el más rápido. Pero la pregunta es, ¿cuál de los componentes gana? Alguien los ha comparado? He estado usando Syncfusion XlsIO, pero eso es muy lento para algunas operaciones clave (como eliminar filas en un libro que contiene miles de rangos con nombre).


No he hecho ningún punto de referencia adecuado, pero probé varios otros componentes y descubrí que SpreadsheetGear era considerablemente más rápido que XlsIO que antes. He escrito algunos de mis hallazgos en esta publicación


Sí, pero no voy a publicarlos por cortesía de Syncfusion (le piden que no publique puntos de referencia), porque no soy un probador experimentado, por lo que mis pruebas probablemente sean un poco defectuosas, pero principalmente porque lo que realmente hace referencia lo convierte en una gran diferencia para quién gana y cuánto.

Tomé uno de sus ejemplos de "rendimiento" y agregué la misma rutina en EPPlus para compararlos. XLSIO fue aproximadamente un 15% más rápido con insertos sencillos, dependiendo de la relación fila / columna (probé algunas), el uso de memoria parecía muy similar. Cuando agregué una rutina que, después de agregar todas las filas, borré cada 10ma fila y luego inserté una nueva fila 2 filas arriba de eso - XLSIO fue significativamente más lento en esa circunstancia.

Un punto de referencia genérico es bastante inútil para usted. Debes probarlos uno contra el otro en los escenarios específicos que usas.

He estado usando EPPlus durante algunos años y el rendimiento ha estado bien, no recuerdo haberlo gritado.

Más digna de su consideración es la funcionalidad, el soporte (Syncfusion ha sido bueno, según mi experiencia), la documentación, el acceso al código fuente si eso es importante y, lo que es más importante, qué tanto sentido tiene la API para usted, la sintaxis puede ser bastante diferente. p.ej. Estilos con nombre

XLSIO

headerStyle.BeginUpdate(); workbook.SetPaletteColor(8, System.Drawing.Color.FromArgb(255, 174, 33)); headerStyle.Color = System.Drawing.Color.FromArgb(255, 174, 33); headerStyle.Font.Bold = true; headerStyle.Borders[ExcelBordersIndex.EdgeLeft] .LineStyle = ExcelLineStyle.Thin; headerStyle.Borders[ExcelBordersIndex.EdgeRight] .LineStyle = ExcelLineStyle.Thin; headerStyle.Borders[ExcelBordersIndex.EdgeTop] .LineStyle = ExcelLineStyle.Thin; headerStyle.Borders[ExcelBordersIndex.EdgeBottom].LineStyle = ExcelLineStyle.Thin; headerStyle.EndUpdate();

EPPlus

ExcelNamedStyleXml headerStyle = xlPackage.Workbook.Styles.CreateNamedStyle("HeaderStyle"); headerStyle.Style.Fill.PatternType = ExcelFillStyle.Solid; // <== needed or BackgroundColor throws an exception headerStyle.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.FromArgb(255, 174, 33)); headerStyle.Style.Font.Bold = true; headerStyle.Style.Border.Left.Style = ExcelBorderStyle.Thin; headerStyle.Style.Border.Right.Style = ExcelBorderStyle.Thin; headerStyle.Style.Border.Top.Style = ExcelBorderStyle.Thin; headerStyle.Style.Border.Bottom.Style = ExcelBorderStyle.Thin;