Har noen .Net Excel IO komponent benchmarks?

stemmer
5

Jeg ønsker å få tilgang til Excel-arbeidsbøker fra Net. Jeg vet alt om de ulike måter å gjøre det (jeg har skrevet dem opp i et blogginnlegg ), og jeg vet at bruk av en innfødt Net komponent kommer til å være den raskeste. Men spørsmålet er, hvilken av komponentene vinner? Har noen benchmarked dem? Jeg har brukt Syncfusion XlsIO, men det er svært treg for noen viktige operasjoner (som å slette rader i en arbeidsbok som inneholder tusenvis av navngitte områder).

Publisert på 18/08/2008 klokken 08:58
kilden bruker
På andre språk...                            


3 svar

stemmer
1

Kan ikke hjelpe deg med det opprinnelige spørsmålet, men er du klar over at du kan få tilgang til Excel-filer ved hjelp av en OleDbConnection, og derfor behandle det som en database? Deretter kan du lese regneark i en Datatable, utføre alle de endringene du trenger til dataene i søknaden din, og deretter lagre det tilbake til filen med et OleDbConnection.

Svarte 18/08/2008 kl. 10:44
kilden bruker

stemmer
5

Jeg har ikke gjort noen skikkelig benchmarks, men jeg prøvde ut flere andre komponenter, og fant ut at SpreadsheetGear var betydelig raskere enn XlsIO som jeg brukte før. Jeg har skrevet opp noen av mine funn i dette innlegget

Svarte 21/08/2008 kl. 09:57
kilden bruker

stemmer
0

Ja, men jeg kommer ikke til å publisere dem begge ut av en tjeneste til Syncfusion (de ber deg om ikke å publisere benchmarks), fordi jeg ikke er en erfaren tester så mine tester er sannsynligvis noe feil, men mest fordi hva du faktisk referanse merker en stor forskjell for hvem som vinner og hvor mye.

Jeg tok en av sine "performance" eksempler og lagt den samme rutinen i EPPlus å sammenligne dem. XLSIO var rundt 15% raskere med kun enkle innsatser, avhengig av den rad / kolonne-forholdet (I forsøkt noen), virket minnebruk svært like. Når jeg lagt til en rutine som, etter at alle radene ble lagt til, slettet hver 10. rad, og deretter satt inn en ny rad 2 rader opp fra det - XLSIO var betydelig tregere i det forholdet.

Et generisk benchmark er ganske-mye unyttig for deg. Du må prøve dem mot hverandre i de spesifikke scenarier du bruker.

Jeg har brukt EPPlus for et par år, og resultatene har vært fint, jeg kan ikke huske å rope på den.

Mer verdig din vurdering er funksjonalitet, support (Syncfusion har vært bra, etter min erfaring), Dokumentasjon, tilgang til kildekoden hvis det er viktig, og - viktigst - hvor mye fornuftig API gjør for deg, kan syntaksen være Ganske forskjellig. f.eks. Navngitte Styles

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;
Svarte 06/11/2017 kl. 08:55
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more