Skapa, manipulera eller ta bort scenarier från arbetsblad med C++
Contents
 [
      
        Hide
      ]
    
Ibland behöver du skapa, manipulera eller radera scenarier i kalkylblad. Ett scenario är en namngiven ‘vad om?'-modell som inkluderar variabelindataceller kopplade av en eller flera formler. Innan scenariot skapas, utforma kalkylbladet så att det innehåller minst en formel som beror på celler där olika värden kan sättas in. Följande exempel visar hur man skapar och tar bort scenarier från ett kalkylblad i en arbetsbok via Aspose.Cells-API:
Aspose.Cells erbjuder några användbara klasser, exempelvis ScenarioCollection, Scenario, ScenarioInputCellCollection och ScenarioInputCell. Den ger även egenskapen Worksheet.GetScenarios(). Kodexemplet nedan öppnar en XLSX-fil som innehåller scenarier och tar bort ett befintligt scenario. Det lägger också till ett nytt scenario till arbetsbladet innan Excel-filen sparas. Exemplet använder en mycket enkel mallfil som innehåller ett scenario.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
    Aspose::Cells::Startup();
    // Source and output directories
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");
    // Load input Excel file
    Workbook workbook(srcDir + u"aspose-sample.xlsx");
    // Access first worksheet
    Worksheet worksheet = workbook.GetWorksheets().Get(0);
    // Access scenarios collection
    ScenarioCollection scenarios = worksheet.GetScenarios();
    if (scenarios.GetCount() > 0)
    {
        // Create new scenario and configure
        int32_t scenarioIndex = scenarios.Add(u"MyScenario");
        Scenario scenario = scenarios.Get(scenarioIndex);
        scenario.SetComment(u"Test scenario is created.");
        // Add input cell to scenario
        ScenarioInputCellCollection inputCells = scenario.GetInputCells();
        inputCells.Add(3, 1, u"1100000"); // Cell B4 (0-based)
        // Save modified workbook
        U16String outputPath = outDir + u"outBk_scenarios1.out.xlsx";
        workbook.Save(outputPath);
        std::cout << "\nProcess completed successfully.\nFile saved at " << outputPath.ToUtf8() << std::endl;
    }
    Aspose::Cells::Cleanup();
    return 0;
}