Uppdatera en slicer med Golang via C++

Möjliga användningsscenarier

Att uppdatera en slicer innebär att filtrera data i pivottabellen eller tabellen som slicern är kopplad till. När du markerar eller avmarkerar slicerobjekt i Microsoft Excel beräknas den länkade pivottabellen eller tabellen om därefter. Med Aspose.Cells for Go via C++ behöver du inte iterera över slicer-cacheobjekten och uppdatera slicern manuellt — metoden Slicer.SelectItems(labels, append) uppdaterar slicern och beräknar om den länkade pivottabellen eller tabellen direkt från filterobjekten:

  • Slicer.SelectItems(labels, append) — markerar de angivna etiketterna och beräknar om den länkade pivottabellen eller tabellen. När append är true behålls de ursprungligen markerade etiketterna och de angivna etiketterna läggs till i urvalet; när append är false rensas alla ursprungliga markeringar och endast de angivna etiketterna förblir markerade.
  • Slicer.UnselectItems(labels) — avmarkerar en del av de för närvarande markerade objekten.
  • Slicer.ClearFilter() — tar bort filtret och markerar alla objekt.

Hur man uppdaterar en slicer

Följande exempelkod laddar exempel-Excel-filen som innehåller en befintlig slicer som är kopplad till en pivottabell. Den markerar endast objekten “Blue” och “Pink” i slicern med Slicer.SelectItems(labels, false) — pivottabellen beräknas om direkt från filterobjekten, utan ett manuellt anrop av Slicer.Refresh(). Därefter sparas arbetsboken som utdata-Excel-filen. Skärmbilden nedan visar effekten av exempelkoden på exempel-Excel-filen. Som du kan se på skärmbilden visar pivottabellen endast de filtrerade objekten. todo:image_alt_text

Exempelkod

Ersätt den aktuella markeringen (endast de angivna etiketterna förblir markerade) och beräkna om den länkade pivottabellen eller tabellen:

package main

import (
    "fmt"

    . "github.com/aspose-cells/aspose-cells-go-cpp/v26"
)

func main() {
    // Load sample Excel file containing slicer.
    wb, _ := NewWorkbook_String("sampleUpdatingSlicer.xlsx")

    // Access first worksheet.
    wss, _ := wb.GetWorksheets()
    ws, _ := wss.Get_Int(0)

    // Access the first slicer inside the slicer collection.
    slicers, _ := ws.GetSlicers()
    slicer, _ := slicers.Get_Int(0)

    // Select only "Blue" and "Pink"; the linked pivot table or table
    // is recalculated directly from the filter items.
    slicer.SelectItems([]string{ "Blue", "Pink" }, false)

    // Save the modified workbook.
    wb.Save_String("out.xlsx")

    fmt.Println("Slicer updated and workbook saved successfully!")
}

Behåll de för närvarande markerade etiketterna och markera ytterligare objekt:

// Keep the current selection and add "Red" to it.
slicer.SelectItems([]string{ "Red" }, true)

Avmarkera en del av de markerade objekten:

// Remove "Pink" from the current selection.
slicer.UnselectItems([]string{ "Pink" })

Ta bort filtret (markera alla objekt):

// Clear the filter; all slicer items become selected again.
slicer.ClearFilter()