Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有一种方法可以使用ApachePOI创建具有模型表名的透视表?_Java_Excel_Apache Poi_Pivot_Pivot Table - Fatal编程技术网

Java 有没有一种方法可以使用ApachePOI创建具有模型表名的透视表?

Java 有没有一种方法可以使用ApachePOI创建具有模型表名的透视表?,java,excel,apache-poi,pivot,pivot-table,Java,Excel,Apache Poi,Pivot,Pivot Table,我需要使用自定义公式添加一个额外的列,该公式必须引用生成的透视表字段值。因此,我正在寻找一种方法来命名透视表(数据模型名称),然后使用该名称引用生成的值 我尝试为CTCacheField的name字段设置值,但它没有创建/命名模型表名称 这是我试过的代码 public void getScoreInPivotTable(String fieldName) { CTCacheFields ctCacheFields = pivotTable.getPivotCacheDefinition(

我需要使用自定义公式添加一个额外的列,该公式必须引用生成的透视表字段值。因此,我正在寻找一种方法来命名透视表(数据模型名称),然后使用该名称引用生成的值

我尝试为CTCacheField的name字段设置值,但它没有创建/命名模型表名称

这是我试过的代码

public void getScoreInPivotTable(String fieldName) {
    CTCacheFields ctCacheFields = pivotTable.getPivotCacheDefinition().getCTPivotCacheDefinition().getCacheFields();
    CTCacheField ctCacheField = ctCacheFields.addNewCacheField();
    ctCacheField.setName(fieldName);
    ctCacheField.setDatabaseField(false);
    ctCacheField.setFormula("'SUM(APPHNDL)'");
    ctCacheField.setNumFmtId(1);
    ctCacheFields.setCount(ctCacheFields.sizeOfCacheFieldArray());
}
我附上了我想要达到的目标的截图

PS:我想为透视表设置模型表名称

请让我知道是否有任何其他方法来实现这一点?
请随时改进此问题。

在Excel中创建一个符合您要求的文件,然后解压缩
.xlsx
文件并检查xml文件,查看实现此功能需要哪些
CT
元素?我试过了。“Range1”与“x15:pivotTableUISettings”标记关联。那么这是否意味着不可能使用ApachePOI
范围1
Excel
工作表中
对象的名称,该工作表是透视表的数据源。那么你想达到什么目的呢?更改数据透视表的数据源?我想根据自定义公式向数据透视表再添加一列。自定义公式引用数据透视表中一列和源表中一列中已生成的值。示例:若要为“分数”列生成值,公式将类似于
AVERAGE(Range1[Column2])+0.4*[SourceColumn1]
此处Column2来自透视表,SourceColumn1来自源表,因为透视数据源似乎来自数据连接。因此,如果您在
Excel
中打开此文件,您将如何“根据自定义公式向数据透视表中再添加一列”?需要采取哪些步骤?