找回密码
 立即注册

QQ登录

只需一步,快速开始

Mrluo

初级会员

23

主题

62

帖子

213

积分

初级会员

积分
213
Mrluo
初级会员   /  发表于:2023-12-5 18:08  /   查看:575  /  回复:2
1金币
本帖最后由 Mrluo 于 2023-12-6 10:03 编辑

透视表设置GC.Spread.Pivot.PivotTableFieldType.valueField的样式

想要设置这个值类型的几个列的数字格式是万为单位 ,按照 数据透视表字段标签格式 | 功能例子 | SpreadJS JavaScript 学习指南 (grapecity.com.cn) 这个例子做的设置,样例的代码如下 :(怕链接发不了,就贴出来官方给的样例代码)
  1. <template>
  2.   <div class="sample-tutorial">
  3.     <gc-spread-sheets
  4.       class="sample-spreadsheets"
  5.       @workbookInitialized="initSpread"
  6.     >
  7.     </gc-spread-sheets>
  8.     <div class="options-container">
  9.       <div>Field Name:</div>
  10.       <select
  11.         name="fieldName"
  12.         id="fieldName"
  13.         class="field-name"
  14.         v-model="fieldName"
  15.         @change="changeFormatter"
  16.       >
  17.         <option value="Salesperson" selected>Salesperson</option>
  18.         <option value="Cars">Cars</option>
  19.         <option value="Date">Date</option>
  20.         <option value="Quantity">Quantity</option>
  21.       </select>
  22.       <div>Formatter:</div>
  23.       <input
  24.         type="text"
  25.         class="label-filter-input filter-input"
  26.         id="formatter"
  27.         v-model="formatter"
  28.       />
  29.       <input
  30.         type="button"
  31.         class="format-button"
  32.         value="Set"
  33.         id="set"
  34.         @click="setFormatter"
  35.       />
  36.       <input
  37.         type="button"
  38.         class="format-button"
  39.         value="Reset"
  40.         id="reset"
  41.         @click="resetFormatter"
  42.       />
  43.     </div>
  44.   </div>
  45. </template>

  46. <script>
  47. import Vue from "vue";
  48. import "@grapecity/spread-sheets-vue";
  49. import GC from "@grapecity/spread-sheets";
  50. import "@grapecity/spread-sheets-shapes";
  51. import "@grapecity/spread-sheets-pivot-addon";
  52. import '@grapecity/spread-sheets-resources-zh';
  53. GC.Spread.Common.CultureManager.culture("zh-cn");
  54. import "./styles.css";

  55. let App = Vue.extend({
  56.   name: "app",
  57.   data: function () {
  58.     return {
  59.       spread: null,
  60.       pivotTable: null,
  61.       fieldName: "Salesperson",
  62.       formatter: "",
  63.     };
  64.   },
  65.   methods: {
  66.     initSpread: function (spread) {
  67.       this.spread = spread;
  68.       spread.suspendPaint();
  69.       spread.setSheetCount(2);
  70.       let sheet1 = spread.getSheet(0);
  71.       let sheet2 = spread.getSheet(1);
  72.       let tableName = this.getSource(sheet2, pivotSales);
  73.       let pivotTable = this.addPivotTable(sheet1, tableName);
  74.       this.pivotTable = pivotTable;
  75.       spread.resumePaint();
  76.     },

  77.     getSource: function (sheet, tableSource) {
  78.       sheet.name("DataSource");
  79.       sheet.setRowCount(117);
  80.       sheet.setColumnWidth(0, 120);
  81.       sheet.getCell(-1, 0).formatter("YYYY-mm-DD");
  82.       sheet.getRange(-1, 4, 0, 2).formatter("$ #,##0");
  83.       let table = sheet.tables.add("table", 0, 0, 117, 6);
  84.       for (let i = 2; i <= 117; i++) {
  85.         sheet.setFormula(i - 1, 5, "=D" + i + "*E" + i);
  86.       }
  87.       table.style(GC.Spread.Sheets.Tables.TableThemes["none"]);
  88.       sheet.setArray(0, 0, tableSource);
  89.       return table.name();
  90.     },

  91.     addPivotTable: function (sheet, source) {
  92.       sheet.suspendPaint();
  93.       sheet.name("PivotTable");
  94.       sheet.setRowCount(10000);
  95.       let pivotTable = sheet.pivotTables.add(
  96.         "PivotTable",
  97.         source,
  98.         1,
  99.         1,
  100.         GC.Spread.Pivot.PivotTableLayoutType.outline,
  101.         GC.Spread.Pivot.PivotTableThemes.light8
  102.       );
  103.       pivotTable.suspendLayout();
  104.       pivotTable.add(
  105.         "salesperson",
  106.         "Salesperson",
  107.         GC.Spread.Pivot.PivotTableFieldType.rowField
  108.       );
  109.       pivotTable.add(
  110.         "car",
  111.         "Cars",
  112.         GC.Spread.Pivot.PivotTableFieldType.rowField
  113.       );
  114.       pivotTable.add(
  115.         "date",
  116.         "Date",
  117.         GC.Spread.Pivot.PivotTableFieldType.columnField
  118.       );
  119.       let groupInfo = {
  120.         originFieldName: "date",
  121.         dateGroups: [{ by: GC.Pivot.DateGroupType.quarters }],
  122.       };
  123.       pivotTable.group(groupInfo);
  124.       pivotTable.add(
  125.         "quantity",
  126.         "Quantity",
  127.         GC.Spread.Pivot.PivotTableFieldType.valueField,
  128.         GC.Pivot.SubtotalType.sum
  129.       );
  130.       let carsStyle = new GC.Spread.Sheets.Style();
  131.       carsStyle.formatter = "[red]@";
  132.       let valueStyle = new GC.Spread.Sheets.Style();
  133.       valueStyle.formatter = "#0.00";
  134.       pivotTable.setStyle(this.initArea("Cars", pivotTable), carsStyle);
  135.       pivotTable.setStyle(this.initArea("Quantity", pivotTable), valueStyle);
  136.       pivotTable.resumeLayout();
  137.       sheet.resumePaint();
  138.       pivotTable.autoFitColumn();
  139.       return pivotTable;
  140.     },
  141.     initArea: function (fieldName, pt) {
  142.       let fieldArea = pt.getField(fieldName).pivotArea;
  143.       if (fieldArea === 1 || fieldArea === 2) {
  144.         return {
  145.           labelOnly: true,
  146.           references: [
  147.             {
  148.               fieldName,
  149.             },
  150.           ],
  151.         };
  152.       } else if (fieldArea === 3) {
复制代码




我的关键代码如下:
image.png626604919.png



image.png17643736.png


要怎么设置这个样式啊,头疼,样例中的说明有个参数
是这样的
image.png963503417.png
但是api文档中又是这样的
image.png703223571.png


我真的搞麻了





最佳答案

查看完整内容

您好,您可以将您的代码中的Values改为值。如下图所示:

2 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-12-5 18:08:28
来自 3#
您好,您可以将您的代码中的Values改为值。如下图所示:
image.png719538268.png
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-12-6 10:01:53
2#
您好,您的问题已收到,我们将深入调研下此问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部