gpt4 book ai didi

java - 如何使用 apache-poi 将数据透视表样式从默认蓝色更改为其他颜色

转载 作者:行者123 更新时间:2023-11-29 04:08:37 26 4
gpt4 key购买 nike

当我使用以下代码创建数据透视表时,它带有一些默认模板样式(蓝色)。如何使用 apache-poi 库更改数据透视表的默认样式

pivotTable = sheet2.createPivotTable(aref, new CellReference("A4"), sheet1);

What I want.

What i am able to generate through code

最佳答案

XXSPivotTable 默认使用命名样式 PivotStyleLight16。参见 setDefaultPivotTableDefinition .

到目前为止,还没有在高级 XSSF 类中更改此设置的方法。但是我们可以从通过 XSSFPivotTable.getCTPivotTableDefinition 获得的 CTPivotTableDefinition 中获取底层的低级 CTPivotTableStyle .然后我们可以使用 CTPivotTableStyle.setName 设置另一个命名样式:

pivotTable.getCTPivotTableDefinition().getPivotTableStyleInfo().setName("PivotStyleMedium7");

完整示例:

import java.io.FileOutputStream;

import org.apache.poi.ss.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import org.apache.poi.xssf.usermodel.*;

class CreatePivotTableStyle {

public static void main(String[] args) throws Exception {

try (Workbook workbook = new XSSFWorkbook();
FileOutputStream fileout = new FileOutputStream("Excel.xlsx") ) {

Sheet pivotSheet = workbook.createSheet("Pivot");
Sheet dataSheet = workbook.createSheet("Data");

Row row;
Cell cell;
Object[][] data = new Object[][]{
new Object[]{"Name", "Count"},
new Object[]{"A", 2d},
new Object[]{"B", 4d},
new Object[]{"A", 1d},
new Object[]{"B", 7d}
};
for (int r = 0; r < data.length; r++) {
row = dataSheet.createRow(r);
Object[] rowData = data[r];
for (int c = 0; c < rowData.length; c++) {
cell = row.createCell(c);
if (rowData[c] instanceof String) {
cell.setCellValue((String)rowData[c]);
} else if (rowData[c] instanceof Double) {
cell.setCellValue((Double)rowData[c]);
}
}
}

AreaReference arerReference = new AreaReference("A1:B5", SpreadsheetVersion.EXCEL2007);

XSSFPivotTable pivotTable = ((XSSFSheet)pivotSheet).createPivotTable(arerReference, new CellReference("A4"), dataSheet);

pivotTable.addRowLabel(0);
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 1, "Sum of count");

pivotTable.getCTPivotTableDefinition().getPivotTableStyleInfo().setName("PivotStyleMedium7");

workbook.write(fileout);

}

}
}

可以从 ExcelGUI PivotTable Tools 选项卡 - Design 中获取可能命名样式的名称。

enter image description here

关于java - 如何使用 apache-poi 将数据透视表样式从默认蓝色更改为其他颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56609207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com