Vra

Ek hoef te bekom Excel werkboeke van Net. Ek weet alles oor die verskillende maniere om dit te doen (ek het hulle geskryf het in 'n blog post ), en ek weet dat die gebruik van 'n boorling Net komponent gaan die vinnigste wees. Maar die vraag is, watter een van die komponente wen? Het iemand hulle maatstaf? Ek het al met behulp van Syncfusion XlsIO, maar dit is baie stadig vir 'n paar belangrike bedrywighede (soos die verwydering van rye in 'n werkboek met duisende Vernoem reekse).

Was dit nuttig?

Oplossing

Ek het geen behoorlike maatstawwe gedoen, maar Ek het probeer om uit 'n hele paar ander komponente, en gevind dat SpreadsheetGear is aansienlik vinniger as XlsIO wat ek gebruik het. Ek het op geskrewe sommige van my bevindinge in hierdie post

Ander wenke

Kan jy nie help met jou oorspronklike vraag, maar is jy bewus daarvan dat jy kan toegang tot Excel lêers met behulp van 'n OleDbConnection, en daarom behandel dit as 'n databasis? Jy kan dan lees werkkaarte in 'n DataTable, voer al die veranderinge wat jy nodig het om die data in jou aansoek, en dan slaan dit alles terug na die lêer met 'n OleDbConnection.

Ja, maar ek is nie van plan om hulle albei uit 'n vergunning om Syncfusion publiseer (hulle vra jou maatstawwe te publiseer), want ek is nie 'n ervare tester so my toetse is waarskynlik ietwat gebrekkig, maar veral omdat dit wat jy eintlik maatstaf maak 'n groot verskil maak aan wie wen en met hoeveel.

Ek het een van hul "prestasie" voorbeelde en dieselfde roetine in EPPlus bygevoeg om hulle te vergelyk. XLSIO was sowat 15% vinniger met net eenvoudig inserts, afhangende van die verhouding ry / kolom (Ek het probeer om 'n paar), geheue gebruik was baie soortgelyk. Toe ek bygevoeg 'n roetine wat, nadat al die rye bygevoeg, verwyder elke 10 ry en dan plaas 'n nuwe ry 2 rye uit wat - XLSIO was aansienlik stadiger in daardie omstandighede.

'n generiese maatstaf is mooi-baie nutteloos vir jou. Wat jy nodig het om hulle te probeer teen mekaar in die spesifieke scenario's wat jy gebruik.

Ek het al met behulp van EPPlus vir 'n paar jaar en die prestasie het fyn is, ek onthou nie skree op dit.

Meer waardig van jou oorweging is die funksie, ondersteuning (Syncfusion het goed, in my ervaring), dokumentasie, toegang tot die bronkode as dit belangrik, en - belangriker - hoeveel sin die API maak vir julle, die sintaksis kan heel anders wees. bv. Vernoem 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;
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top