Java 如何使用ApachePOI将透视表样式从默认的蓝色更改为其他颜色

Java 如何使用ApachePOI将透视表样式从默认的蓝色更改为其他颜色,java,excel,apache-poi,pivot-table,Java,Excel,Apache Poi,Pivot Table,当我使用下面的代码创建透视表时,它附带了一些默认的模板样式(蓝色)。如何使用ApachePOI库更改透视表的默认样式 pivotTable = sheet2.createPivotTable(aref, new CellReference("A4"), sheet1); XXSPivotTable在默认情况下使用命名样式PivotStyleLight16。看 到目前为止,在高级XSSF类中还没有改变这一点的方法。但是我们可以从通过获取的CTPivotTableDefinition中获取底层的

当我使用下面的代码创建透视表时,它附带了一些默认的模板样式(蓝色)。如何使用ApachePOI库更改透视表的默认样式

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


XXSPivotTable
在默认情况下使用命名样式
PivotStyleLight16
。看

到目前为止,在高级
XSSF
类中还没有改变这一点的方法。但是我们可以从通过获取的
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);

  }

 }
}
import java.io.FileOutputStream;
导入org.apache.poi.ss.*;
导入org.apache.poi.ss.usermodel.*;
导入org.apache.poi.ss.util.*;
导入org.apache.poi.xssf.usermodel.*;
类CreatePivotTableStyle{
公共静态void main(字符串[]args)引发异常{
尝试(工作簿=新XSSFWORKWORK();
FileOutputStream fileout=新的FileOutputStream(“Excel.xlsx”)){
工作表数据透视表=工作簿.createSheet(“数据透视”);
工作表数据表=工作簿.createSheet(“数据”);
行行;
细胞;
对象[][]数据=新对象[][]{
新对象[]{“名称”,“计数”},
新对象[]{“A”,2d},
新对象[]{“B”,4d},
新对象[]{“A”,1d},
新对象[]{“B”,7d}
};
for(int r=0;r
可能命名样式的名称可以从
Excel
s
GUI
中的
PivotTable Tools
tab-
Design
中获得