Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Una tabella pivot aggrega normalmente ciascun campo dati con una funzione di aggregazione come Sum o Count. La funzionalità Show Values As di Excel sostituisce ogni risultato visualizzato con un calcolo secondario derivato da quell’aggregato — ad esempio, una percentuale del totale complessivo, un totale cumulativo, una differenza rispetto a un elemento base scelto o un rango — in modo da poter eseguire analisi comparative senza formule di supporto o colonne calcolate.
Gli usi tipici includono l’analisi della quota del totale, includendo percentuali di una riga, colonna o totale complessivo; reportistica cumulativa utilizzando un totale cumulativo in un campo periodo; analisi della varianza rispetto a un elemento di riferimento usando la differenza da o la differenza percentuale da un elemento base; e la classificazione dei valori dal più piccolo al più grande o dal più grande al più piccolo.
In Aspose.Cells for Go via C++, PivotFieldDataDisplayFormat seleziona il calcolo secondario. L’accessor PivotField.GetShowValuesSetting() restituisce un oggetto PivotShowValuesSetting, i cui metodi SetCalculationType, SetBaseFieldIndex, SetBaseItemPositionType e SetBaseItemIndex configurano il comportamento; il metodo di convenienza PivotField.ShowValuesAs(...) applica le stesse quattro impostazioni in una chiamata. Applica queste impostazioni a un campo dati o valore ottenuto da PivotTable.GetDataFields().
Il campo dati mantiene la sua funzione di aggregazione, come Sum o Count, mentre Show Values As trasforma solo il modo in cui il valore aggregato viene visualizzato.
Oltre a impostare direttamente i valori di PivotShowValuesSetting (vedi l’ultima sezione), un metodo di convenienza a chiamata singola applica la stessa configurazione:
func (pivotField *PivotField) ShowValuesAs_PivotFieldDataDisplayFormat_Int_PivotItemPositionType_Int(displayFormat PivotFieldDataDisplayFormat, baseField int32, baseItemPositionType PivotItemPositionType, baseItem int32)
| Parametro | Significato | Quando è richiesto |
|---|---|---|
displayFormat |
Il calcolo secondario PivotFieldDataDisplayFormat da applicare. |
Sempre. |
baseField |
Indice basato su zero del campo base tra i campi base della tabella pivot (ad esempio, l’indice del campo riga a cui appartiene l’elemento base). | Solo per i sei formati a base di riferimento riportati di seguito (DifferenceFrom, PercentageOf, PercentageDifferenceFrom, RunningTotalIn, PercentageOfRunningTotalIn, PercentageOfParentTotal); ignorato da ogni altro formato. |
baseItemPositionType |
Come viene scelto l’elemento base rispetto all’elemento corrente: PivotItemPositionType.Previous, .Next o .Custom. |
Solo per i tre formati con elemento di base (DifferenceFrom, PercentageOf, PercentageDifferenceFrom); ignorato da ogni altro formato. |
baseItem |
Indice basato su zero dell’elemento base. | Solo quando baseItemPositionType è Custom (l’indice dell’elemento seleziona l’elemento base esatto); ignorato per Previous / Next e da tutti i formati non basati su elemento — passare 0. |
| Tipo di calcolo | Comportamento | Parametri elemento base |
|---|---|---|
Normal |
Nessun calcolo secondario; il valore aggregato è visualizzato così com’è (predefinito). | — |
DifferenceFrom |
Visualizza il valore come differenza rispetto al valore di un elemento base in un campo base. | baseField + Previous/Next/Custom (baseItem solo con Custom) |
PercentageOf |
Visualizza il valore come percentuale del valore di un elemento base in un campo base. | baseField + Previous/Next/Custom (baseItem solo con Custom) |
PercentageDifferenceFrom |
Visualizza il valore come differenza percentuale rispetto al valore di un elemento base in un campo base. | baseField + Previous/Next/Custom (baseItem solo con Custom) |
RunningTotalIn |
Visualizza il valore come totale cumulativo per elementi successivi di un campo base. | baseField (il campo il cui ordine degli elementi guida l’accumulazione) |
PercentageOfRow |
Visualizza il valore come percentuale del totale della riga. | — |
PercentageOfColumn |
Visualizza il valore come percentuale del totale della colonna. | — |
PercentageOfTotal |
Visualizza il valore come percentuale del totale complessivo. | — |
Index |
Visualizza il valore usando la formula di indice di Excel ((valore * totale complessivo) / (totale riga * totale colonna)). | — |
PercentageOfParentRowTotal |
Visualizza il valore come percentuale del totale della riga padre (per campi riga annidati). | — |
PercentageOfParentColumnTotal |
Visualizza il valore come percentuale del totale della colonna padre (per campi colonna annidati). | — |
PercentageOfParentTotal |
Visualizza il valore come percentuale del totale padre. | baseField (il campo padre di riferimento) |
PercentageOfRunningTotalIn |
Visualizza il valore come percentuale di un totale cumulativo in un campo base. | baseField (il campo di accumulazione) |
RankSmallestToLargest |
Classifica il valore dal più piccolo (1) al più grande. | — |
RankLargestToSmallest |
Classifica il valore dal più grande (1) al più piccolo. | — |
ShowValuesAs(...) scrive i valori PivotShowValuesSetting (CalculationType, BaseFieldIndex, BaseItemPositionType, BaseItemIndex) — il metodo e l’oggetto impostazioni sono due modi per configurare lo stesso stato, rispecchiando i selettori di campo base e elemento base nella finestra di dialogo Show Values As di Excel.
Chiama il metodo PivotField.ShowValuesAs con PivotFieldDataDisplayFormat.PercentageOfTotal per convertire ogni cella del campo dati, incluso il totale complessivo, nella sua quota del totale complessivo. I numeri visualizzati sono quindi proporzioni dell’insieme completo dei risultati. Questo formato misura ogni valore rispetto solo al totale complessivo, quindi non richiede né campo base né elemento base — gli argomenti finali (0, PivotItemPositionType.Previous, 0) sono segnaposto che il formato ignora, come indicato nella tabella dei parametri sopra.
package main
import (
. "github.com/aspose-cells/aspose-cells-go-cpp/v26"
)
func main() {
// Load or create a workbook with source data
workbook, _ := NewWorkbook()
worksheets, _ := workbook.GetWorksheets()
dataSheet, _ := worksheets.Get_Int(0)
cells, _ := dataSheet.GetCells()
cell, _ := cells.Get_String("A1")
cell.PutValue_String("Fruit")
cell, _ = cells.Get_String("B1")
cell.PutValue_String("Amount")
fruits := []string{"Apple", "Banana", "Apple", "Cherry", "Banana", "Apple"}
amounts := []int{10, 20, 30, 40, 50, 60}
for i := range fruits {
fruitCell, _ := cells.Get_Int_Int(int32(i+1), int32(0))
fruitCell.PutValue_String(fruits[i])
amountCell, _ := cells.Get_Int_Int(int32(i+1), int32(1))
amountCell.PutValue_Int(int32(amounts[i]))
}
// Add a pivot table on a new worksheet
pivotSheetIndex, _ := worksheets.Add()
pivotSheet, _ := worksheets.Get_Int(pivotSheetIndex)
pivotTables, _ := pivotSheet.GetPivotTables()
pivotTable, _ := pivotTables.Add_String_Int_Int("=Sheet1!A1:B7", 2, 2)
pivotTable.AddFieldToArea_PivotFieldType_String(PivotFieldType_Row, "Fruit")
pivotTable.AddFieldToArea_PivotFieldType_String(PivotFieldType_Data, "Amount")
pivotTable.CalculateData()
// Show the Amount data field as a percentage of the grand total with the
// one-call method; PercentageOfTotal takes no base item, so the trailing
// base arguments (0, Previous, 0) are placeholders the format ignores
dataFields, _ := pivotTable.GetDataFields()
dataField, _ := dataFields.Get_Int(0)
dataField.ShowValuesAs_PivotFieldDataDisplayFormat_Int_PivotItemPositionType_Int(
PivotFieldDataDisplayFormat_PercentageOfTotal,
int32(0),
PivotItemPositionType_Previous,
int32(0),
)
pivotTable.CalculateData()
// Body now reads: Apple 47.62%, Banana 33.33%, Cherry 19.05%, Grand Total 100.00%
workbook.Save_String("ShowValuesAsPercentageOfTotal.xlsx")
}
Leggi la configurazione corrente tramite PivotField.GetShowValuesSetting(): l’accessor restituisce l’oggetto PivotShowValuesSetting del campo, i cui quattro metodi getter descrivono il calcolo Show Values As attivo. Per modificare la configurazione, chiama il metodo PivotField.ShowValuesAs — scrive tutte e quattro le impostazioni in una singola chiamata, così non è necessario impostare i valori uno per uno.
L’oggetto PivotShowValuesSetting espone i quattro valori scritti da ShowValuesAs:
GetCalculationType() / SetCalculationType() selezionano il calcolo secondario PivotFieldDataDisplayFormat.GetBaseFieldIndex() / SetBaseFieldIndex() specificano l’indice basato su zero del campo base all’interno dei campi pivot. È usato dai formati a base di riferimento.GetBaseItemPositionType() / SetBaseItemPositionType() determinano come l’elemento base è posizionato rispetto all’elemento corrente e accettano PivotItemPositionType.Next, PivotItemPositionType.Previous o PivotItemPositionType.Custom.GetBaseItemIndex() / SetBaseItemIndex() specificano l’indice basato su zero dell’elemento base e sono usati quando il tipo di posizione è Custom.
Dopo aver chiamato ShowValuesAs, chiama nuovamente PivotTable.CalculateData() in modo che il corpo della tabella pivot venga ricalcolato e visualizzato con la configurazione aggiornata.package main
import (
"fmt"
. "github.com/aspose-cells/aspose-cells-go-cpp/v26"
)
func main() {
workbook, _ := NewWorkbook_String("ShowValuesAsPercentageOfTotal.xlsx")
worksheets, _ := workbook.GetWorksheets()
worksheet, _ := worksheets.Get_Int(1)
pivotTables, _ := worksheet.GetPivotTables()
pivotTable, _ := pivotTables.Get_Int(0)
dataFields, _ := pivotTable.GetDataFields()
dataField, _ := dataFields.Get_Int(0)
// Read the current show-values settings
settings, _ := dataField.GetShowValuesSetting()
calculationType, _ := settings.GetCalculationType()
baseFieldIndex, _ := settings.GetBaseFieldIndex()
baseItemPositionType, _ := settings.GetBaseItemPositionType()
baseItemIndex, _ := settings.GetBaseItemIndex()
fmt.Println("CalculationType:", calculationType)
fmt.Println("BaseFieldIndex:", baseFieldIndex)
fmt.Println("BaseItemPositionType:", baseItemPositionType)
fmt.Println("BaseItemIndex:", baseItemIndex)
// Switch to a base-item calculation with the one-call method: difference
// from the value of the previous item in the row field
rowFields, _ := pivotTable.GetRowFields()
rowField, _ := rowFields.Get_Int(0)
baseIndex, _ := rowField.GetBaseIndex()
dataField.ShowValuesAs_PivotFieldDataDisplayFormat_Int_PivotItemPositionType_Int(
PivotFieldDataDisplayFormat_DifferenceFrom,
baseIndex,
PivotItemPositionType_Previous,
0,
)
pivotTable.CalculateData()
// Note: the percentage number format saved by the previous example still
// clings to the data field cells; the underlying values are now differences
// Re-read the applied configuration
updatedSettings, _ := dataField.GetShowValuesSetting()
updatedCalculationType, _ := updatedSettings.GetCalculationType()
fmt.Println("CalculationType now:", updatedCalculationType)
workbook.Save_String("ShowValuesAsDifferenceFrom.xlsx")
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.