You can serialize the current state of the pivot table data and restore or deserialize the saved state later as needed. Serialization supports the following pivot table data: Fields, Options, Filter, Sort, Layout, PivotTable Position, and Theme.
PivotTables support serialization/deserialization.
The SerializeInfo returned by the serialize() API can only be used in pivot tables under the same data source.
Serialize & Deserialize
Serialization supports the following data:
Fields, Options, Filter, Sort, Layout, PivotTable Position, Theme
interface GC.Spread.Pivot.ISerializeInfo
{
layoutType?: GC.Spread.Pivot.PivotTableLayoutType;
options?: object;
theme?: string;
valuePosition?: GC.Pivot.IDataPosition;
pivotTablePosition?: number[];
fieldsInfo?: GC.Spread.Pivot.ISerializeFieldInfo[][];
styles?: GC.Spread.Pivot.IPivotStyle[];
collapseItems?: object;
showDataAsList?: GC.Spread.Pivot.ISerializeShowDataAsInfo[];
}
interface GC.Spread.Pivot.ISerializeFieldInfo {
sourceName: string;
displayName: string;
subtotal?: GC.Pivot.SubtotalType;
labelFilter?: GC.Spread.Pivot.IPivotTextFilterInfo | GC.Spread.Pivot.IPivotConditionFilterInfo;
valueFilter?: GC.Spread.Pivot.IPivotConditionFilterInfo;
sortInfo?: GC.Spread.Pivot.IPivotTableSortInfo;
}
API
///* function serialize (): GC.Spread.Pivot.ISerializeInfo
/**
* @description get serialized pivot table data
* @returns {GC.Spread.Pivot.ISerializeInfo} serialized pivot table data
*/
serialize (): GC.Spread.Pivot.ISerializeInfo
///* function deserialize (serializeInfo: GC.Spread.Pivot.ISerializeInfo)
/**
* @description restore serialized pivot table data to a existed pivot table
* @param {GC.Spread.Pivot.ISerializeInfo} serialized pivot table data
*/
deserialize (serializeInfo: GC.Spread.Pivot.ISerializeInfo)
Sample Code
var spread = new GC.Spread.Sheets.workbook(document.getElementById("ss"),{sheetCount:3});
var sourceSheet = spread.getSheet(0);
var sheet = spread.getSheet(1);
var sourceData = [["Date","Buyer","Type","Amount"],
["01-Jan","Mom","Fuel",74],
["15-Jan","Mom","Food",235],
["17-Jan","Dad","Sports",20],
["21-Jan","Kelly","Books",125]];
sourceSheet.setArray(0, 0, sourceData );
sourceSheet.tables.add('sourceData', 0, 0, 5, 4);
var layout = GC.Spread.Pivot.PivotTableLayoutType.compact;
var theme = GC.Spread.Pivot.PivotTableThemes.medium2;
var options = {showRowHeader: true, showColumnHeader: true};
var pivotTable = sheet.pivotTables.add("pivotTable_1", 'sourceData', 1, 1, layout, theme, options);
pivotTable.add("Buyer","Buyer",GC.Spread.Pivot.PivotTableFieldType.rowField);
pivotTable.add("Type","Type",GC.Spread.Pivot.PivotTableFieldType.columnField);
pivotTable.add("Amount","Sum of Amount",GC.Spread.Pivot.PivotTableFieldType.valueField, GC.Pivot.SubtotalType.sum);
var serialization = pivotTable.serialize();
pivotTable.remove('Type');
pivotTable.deserialize(serialization);
Submit and view feedback for