FAQ

Hur fixar jag System.StackOverFlowException på Workbook.CalculateFormula?

Ibland möter användare System.StackOverFlowException på Workbook.CalculateFormula-metoden. Detta undantag uppstår vanligtvis eftersom standardstackstorleken för IIS är för liten (endast 265k). Du kan åtgärda det här felet genom att skapa en annan tråd med ökad stackstorlek och sedan flytta din Workbook.CalculateFormula-relaterade kod inuti den.

Problem med linjernas tjocklek när Excel renderas till PDF

Ibland, när Excel-filen konverteras till PDF, är tjockleken på linjerna annorlunda i utdata PDF. Det här problemet orsakas inte av Aspose.Cells. Det orsakas avAdobe läsare när dess inställningar**“Slät linjekonst”** och**“Förbättra tunna linjer”** är kontrollerade. Om du avmarkerar dessa alternativ visas PDF fint.

Om kontrollera**“Slät linjekonst”** och**“Förbättra tunna linjer”**, tjockleken på linjer är annorlunda. Se följande steg hur det görs:

  • Gå tillRedigera
  • VäljInställningar
  • I denSidvisning Kategori Kontrollera**“Slät linjekonst”** och**“Förbättra tunna linjer”**

Om avmarkera**“Slät linjekonst”** och**“Förbättra tunna linjer”**, tjockleken på linjer är densamma. För att uppnå detta, följ bara stegen nedan:

  • Gå tillRedigera
  • VäljInställningar
  • I denSidvisning Kategori Avmarkera**“Slät linjekonst”** och**“Förbättra tunna linjer”**

Hur fixar man System.OutOfMemoryException när man laddar stora kalkylblad?

Det finns rimliga chanser att Workbook-konstruktören kan kasta System.OutOfMemoryException när stora kalkylblad laddas. Detta undantag tyder på att det tillgängliga minnet är otillräckligt för att fullständigt ladda kalkylarket i minnet, därför måste kalkylarket laddas samtidigt som du aktiverarMinnesinställningar.

Aspose.Cells API:er tillhandahåller minnesinställningar för att optimera minnesförbrukningen när du laddar och bearbetar kalkylblad. Dessa alternativ är också användbara för att effektivt ladda de stora kalkylbladen som innehåller enorma datamängder i Workbook-objektet som visas nedan.

Bestäm vilken stackstorlek som behövs för en viss arbetsbok

Även om vi har förbättrat Aspose.Cells formelberäkningsmotorn och i de flesta fall bör du kunna få alla formler beräknade framgångsrikt för en given mallfil utan att ange mindre stackstorlek. Men ändå, ibland kan StackOverFlowException på Workbook.CalculateFormula-metoden vara oundviklig. Vi tillhandahåller nya API:er för användarna att spåra formelberäkningarna. Vi har lagt till en klass som heter “AbstractCalculationMonitor” och tillhandahållit en egenskap, dvs.CalculationOptions.CalculationMonitorför att hantera/spåra problemet.

Användare kan spåra stackstorleken själva med hjälp av API:erna. Observera att en kontroll av stacken för varje cell säkerligen kommer att försämra prestandan i större utsträckning. Se exempelkodsegmentet för din referens:

     public class MyCalculationMonitor : AbstractCalculationMonitor      { public override void BeforeCalculate(int sheetIndex, int rowIndex, int colIndex) { if(new StackTrace(false).FrameCount _x{000) d 0:00:000) Stoppa formelberäkningen eftersom risken för StackOverflowException"); } } `}