我这边将您提供的Demo通过js后改写后,首先有一个接口的参数有问题:
这里应该是:let sheet = spread.getSheet(0);
因为默认spread只有一个sheet。
修改后的核心代码如下:
spread.suspendPaint();
let sheet = spread.getSheet(0);
sheet.name("DataSource");
sheet.setRowCount(117);
sheet.setColumnWidth(0, 120);
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],
];
sheet.setArray(0, 0, sourceData);
let table = sheet.tables.add("tableSales", 0, 0, 5, 4);
let sheet0 = spread.getSheet(0);
sheet0.name("PivotLayout");
spread.resumePaint();
let pivotLayoutSheet = spread.getSheet(0);
let myPivotTable = sheet.pivotTables.add(
"myPivotTable",
"tableSales",
1,
1,
GC.Spread.Pivot.PivotTableLayoutType.outline,
GC.Spread.Pivot.PivotTableThemes.light8
);
myPivotTable.suspendLayout();
myPivotTable.options.showRowHeader = true;
myPivotTable.options.showColumnHeader = true;
myPivotTable.add(
"buyer",
"Buyer",
GC.Spread.Pivot.PivotTableFieldType.rowField
);
myPivotTable.add(
"type",
"Type",
GC.Spread.Pivot.PivotTableFieldType.columnField
);
myPivotTable.add(
"amount",
"Amount",
GC.Spread.Pivot.PivotTableFieldType.valueField,
GC.Pivot.SubtotalType.sum
);
myPivotTable.resumeLayout();
myPivotTable.autoFitColumn();
运行后提示:
透视表不能与表格重叠,所以需要修改透视表的位置:
再次运行,结果如下:
综上,透视表能够正常显示。
最后,即使我没有透视表的授权,透视表也是可以正常显示的:
透视表仅会受部署授权的影响,不会受开发授权的影响,也就是说无论您当时购买SpreadJS时有没有包含透视表,都不会影响您在开发授权下透视表的显示,只会影响部署授权下透视表的显示。 |