Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Un tableau croisé dynamique agrège normalement chaque champ de données avec une fonction d’agrégation telle que Sum ou Count. La fonction Show Values As d’Excel remplace chaque résultat affiché par un calcul secondaire dérivé de cet agrégat : par exemple, un pourcentage du total général, un total cumulé, une différence par rapport à un élément de base choisi, ou un classement — ce qui permet d’effectuer une analyse comparative sans formules auxiliaires ni colonnes calculées.
Les utilisations typiques incluent l’analyse de la part du total, avec les pourcentages d’une ligne, d’une colonne ou du total général ; le reporting cumulé en utilisant un total cumulé dans un champ de période ; l’analyse des écarts par rapport à un élément de référence à l’aide d’une différence ou une différence en pourcentage ; et le classement des valeurs du plus petit au plus grand ou inversement.
Dans Aspose.Cells for Go via C++, PivotFieldDataDisplayFormat sélectionne le calcul secondaire. L’accesseur PivotField.GetShowValuesSetting() renvoie un objet PivotShowValuesSetting dont les méthodes SetCalculationType, SetBaseFieldIndex, SetBaseItemPositionType et SetBaseItemIndex configurent le comportement ; la méthode pratique PivotField.ShowValuesAs(...) applique les quatre mêmes paramètres en un seul appel. Appliquez ces paramètres à un champ de données ou de valeur obtenu via PivotTable.GetDataFields().
Le champ de données conserve sa fonction d’agrégation, telle que Sum ou Count, tandis que Show Values As ne transforme que la façon dont la valeur agrégée est affichée.
En plus d’écrire directement les valeurs PivotShowValuesSetting (voir la dernière section), une méthode pratique en un appel applique la même configuration :
func (pivotField *PivotField) ShowValuesAs_PivotFieldDataDisplayFormat_Int_PivotItemPositionType_Int(displayFormat PivotFieldDataDisplayFormat, baseField int32, baseItemPositionType PivotItemPositionType, baseItem int32)
| Paramètre | Signification | Quand il est requis |
|---|---|---|
displayFormat |
Le calcul secondaire PivotFieldDataDisplayFormat à appliquer. |
Toujours. |
baseField |
Index basé sur zéro du champ de base parmi les champs de base du tableau croisé dynamique (par exemple, l’index du champ de ligne auquel appartient l’élément de base). | Uniquement pour les six formats relatifs à une base ci-dessous (DifferenceFrom, PercentageOf, PercentageDifferenceFrom, RunningTotalIn, PercentageOfRunningTotalIn, PercentageOfParentTotal) ; ignoré par tout autre format. |
baseItemPositionType |
Comment l’élément de base est choisi par rapport à l’élément actuel : PivotItemPositionType.Previous, .Next ou .Custom. |
Uniquement pour les trois formats à élément de base (DifferenceFrom, PercentageOf, PercentageDifferenceFrom) ; ignoré par tout autre format. |
baseItem |
Index basé sur zéro de l’élément de base. | Uniquement lorsque baseItemPositionType est Custom (l’index de l’élément désigne exactement l’élément de base) ; ignoré pour Previous / Next et par tout format non‑base — passez 0. |
| Type de calcul | Comportement | Paramètres de l’élément de base |
|---|---|---|
Normal |
Pas de calcul secondaire ; la valeur agrégée est affichée telle quelle (par défaut). | — |
DifferenceFrom |
Affiche la valeur comme une différence par rapport à la valeur d’un élément de base dans un champ de base. | baseField + Previous/Next/Custom (baseItem uniquement avec Custom) |
PercentageOf |
Affiche la valeur en pourcentage de la valeur d’un élément de base dans un champ de base. | baseField + Previous/Next/Custom (baseItem uniquement avec Custom) |
PercentageDifferenceFrom |
Affiche la valeur comme la différence en pourcentage par rapport à la valeur d’un élément de base dans un champ de base. | baseField + Previous/Next/Custom (baseItem uniquement avec Custom) |
RunningTotalIn |
Affiche la valeur comme un total cumulé pour les éléments successifs d’un champ de base. | baseField (le champ dont l’ordre des éléments pilote l’accumulation) |
PercentageOfRow |
Affiche la valeur en pourcentage du total de la ligne. | — |
PercentageOfColumn |
Affiche la valeur en pourcentage du total de la colonne. | — |
PercentageOfTotal |
Affiche la valeur en pourcentage du total général. | — |
Index |
Affiche la valeur à l’aide de la formule d’index Excel ((valeur * total général) / (total ligne * total colonne)). | — |
PercentageOfParentRowTotal |
Affiche la valeur en pourcentage du total de la ligne parente (pour les champs de ligne imbriqués). | — |
PercentageOfParentColumnTotal |
Affiche la valeur en pourcentage du total de la colonne parente (pour les champs de colonne imbriqués). | — |
PercentageOfParentTotal |
Affiche la valeur en pourcentage du total parent. | baseField (le champ parent servant de référence) |
PercentageOfRunningTotalIn |
Affiche la valeur en pourcentage d’un total cumulé dans un champ de base. | baseField (le champ d’accumulation) |
RankSmallestToLargest |
Classe la valeur du plus petit (1) au plus grand. | — |
RankLargestToSmallest |
Classe la valeur du plus grand (1) au plus petit. | — |
ShowValuesAs(...) écrit les valeurs PivotShowValuesSetting (CalculationType, BaseFieldIndex, BaseItemPositionType, BaseItemIndex) — la méthode et l’objet de paramètres sont deux façons de configurer le même état, reflétant les sélecteurs de champ de base et d’élément de base dans la boîte de dialogue Show Values As d’Excel.
Appelez la méthode PivotField.ShowValuesAs avec PivotFieldDataDisplayFormat.PercentageOfTotal pour convertir chaque cellule du champ de données, y compris le total général, en sa part du total général. Les nombres affichés sont donc interprétés comme des proportions de l’ensemble du résultat. Ce format ne compare chaque valeur qu’au total général, il ne nécessite donc aucun champ ou élément de base — les arguments supplémentaires (0, PivotItemPositionType.Previous, 0) sont des espaces réservés que le format ignore, comme l’indique le tableau des paramètres ci‑dessus.
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")
}
Lisez la configuration actuelle via PivotField.GetShowValuesSetting() : l’accesseur renvoie l’objet PivotShowValuesSetting du champ, dont les quatre méthodes d’accès décrivent le calcul Show Values As actif. Pour modifier la configuration, appelez la méthode PivotField.ShowValuesAs ; elle écrit les quatre paramètres en un seul appel, vous n’avez donc jamais besoin de les définir un par un.
L’objet PivotShowValuesSetting expose les quatre valeurs que ShowValuesAs écrit :
GetCalculationType() / SetCalculationType() sélectionnent le calcul secondaire PivotFieldDataDisplayFormat.GetBaseFieldIndex() / SetBaseFieldIndex() spécifient l’index basé sur zéro du champ de base parmi les champs pivots. Il est utilisé par les formats relatifs à une base.GetBaseItemPositionType() / SetBaseItemPositionType() déterminent comment l’élément de base est positionné par rapport à l’élément actuel et acceptent PivotItemPositionType.Next, PivotItemPositionType.Previous ou PivotItemPositionType.Custom.GetBaseItemIndex() / SetBaseItemIndex() spécifient l’index basé sur zéro de l’élément de base et sont utilisés lorsque le type de position est Custom.
Après avoir appelé ShowValuesAs, appelez à nouveau PivotTable.CalculateData() afin que le corps du tableau croisé dynamique soit recalculé et rendu avec la nouvelle configuration.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.