Domanda

Ho la necessità di accedere a cartelle di lavoro di Excel da .Net.So tutto sui diversi modi di farlo (l'ho scritto in un post del blog), e so che l'utilizzo di un nativo .Net componente sta per essere il più veloce.Ma la domanda è, quali componenti vince?Qualcuno l'ha paragonata a loro?Sto usando Syncfusion XlsIO, ma che è molto lento per alcune operazioni fondamentali (come l'eliminazione di righe in una cartella di lavoro contenente migliaia di intervalli con Nome).

È stato utile?

Soluzione

Non ho fatto corretta parametri di riferimento, ma ho provato diversi altri componenti,e ha scoperto che SpreadsheetGear era notevolmente più veloce rispetto a XlsIO che usavo prima.Ho scritto alcuni dei miei risultati in questo post

Altri suggerimenti

Non posso aiutarti con la tua domanda originale, ma siete consapevoli che è possibile accedere a file di Excel utilizzando un OleDbConnection, e quindi trattarlo come un database?È quindi possibile leggere i fogli di lavoro in una DataTable, eseguire tutte le modifiche necessarie per i dati nell'applicazione, e quindi salvare di nuovo tutto per il file utilizzando un OleDbConnection.

Sì ma io non ho intenzione di pubblicarli entrambi fuori una cortesia a Syncfusion (ti chiedono di non pubblicare parametri di riferimento), perché io non sono un esperto tester quindi i miei test sono probabilmente un po ' viziata, ma soprattutto perché quello che in realtà benchmark fa una differenza enorme per chi vince e da quanto.

Ho preso una delle loro "prestazioni" esempi e aggiunto la stessa routine in EPPlus per confrontarli.XLSIO di circa il 15% più veloce con solo semplice inserti, a seconda riga/colonna ratio (ho provato un paio di), l'utilizzo della memoria è sembrato molto simile.Quando ho aggiunto una routine che, dopo tutte le righe sono state aggiunte, eliminate ogni 10 righe e poi inserita una nuova riga 2 righe da - XLSIO era significativamente più lento che in quella circostanza.

Un generico punto di riferimento è sostanzialmente inutile.Hai bisogno di provare uno contro l'altro in scenari specifici in uso.

Sono stato con EPPlus per un paio di anni è stato bene, non ricordo le grida di esso.

Più degno della vostra considerazione è la funzionalità, il supporto (Syncfusion sono stato bene, nella mia esperienza), la Documentazione, l'accesso al codice sorgente, se è importante, e, soprattutto, quanto il senso di API fa per voi, la sintassi può essere molto diversa.es.Stili Con Nome

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;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top