Optimera minnesanvändning när du arbetar med stora filer med stora datamängder

Optimera minnet

Läsa stora Excel-filer

Följande exempel visar hur man läser en stor Microsoft Excel-fil i optimerat läge.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Specify the LoadOptions
LoadOptions opt = new LoadOptions();
// Set the memory preferences
opt.MemorySetting = MemorySetting.MemoryPreference;
// Instantiate the Workbook
// Load the Big Excel file having large Data set in it
Workbook wb = new Workbook(dataDir+ "Book1.xlsx", opt);

Skriva stora Excel-filer

Följande exempel visar hur man skriver en stor datamängd till ett kalkylblad i ett optimerat läge.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Instantiate a new Workbook
Workbook wb = new Workbook();
// Set the memory preferences
// Note: This setting cannot take effect for the existing worksheets that are created before using the below line of code
wb.Settings.MemorySetting = MemorySetting.MemoryPreference;
// Note: The memory settings also would not work for the default sheet i.e., "Sheet1" etc. automatically created by the Workbook
// To change the memory setting of existing sheets, please change memory setting for them manually:
Cells cells = wb.Worksheets[0].Cells;
cells.MemorySetting = MemorySetting.MemoryPreference;
// Input large dataset into the cells of the worksheet.
// Your code goes here.
// .........
// Get cells of the newly created Worksheet "Sheet2" whose memory setting is same with the one defined in WorkbookSettings:
cells = wb.Worksheets.Add("Sheet2").Cells;
// .........
// Input large dataset into the cells of the worksheet.
// Your code goes here.
// .........

Varning

Standardalternativet,MemorySetting.Normaltillämpas för alla versioner. För vissa situationer, som att bygga en arbetsbok med en stor datamängd för celler,MemorySetting.MemoryPreferencealternativet kan optimera minnesanvändningen och minska minneskostnaden för programmet. Det här alternativet kan dock försämra prestandan i vissa speciella fall som följer.

  1. Åtkomst till Cells slumpmässigt och upprepade gånger : Den mest effektiva sekvensen för att komma åt cellsamlingen är cell för cell i en rad och sedan rad för rad. Speciellt om du får åtkomst till rader/celler av Enumeratorn som hämtats frånCells, RowCollection ochRad , skulle prestandan maximeras medMemorySetting.MemoryPreference.
  2. Infoga & Ta bort Cells & Rader : Observera att om det finns många insert/delete-operationer för Cells/Rows, kommer prestandaförsämringen att märkas förMinnespreferens läge jämfört medVanligtläge.
  3. Fungerar på olika Cell typer : Om de flesta av cellerna innehåller strängvärden eller formler blir minneskostnaden densamma somVanligt läge men om det finns många tomma celler eller cellvärden är numeriska, bool och så vidare,MemorySetting.MemoryPreferencealternativet ger bättre prestanda.