首先,这个问题不能像现在所问的那样在一般情况下回答.到目前为止,使用apache poi创建数据透视表仍处于beta状态.因此,我们不仅需要高级apache poi API,还需要底层的低级对象.而且我们需要确切地知道数据透视表中应包含哪种数据.为了像Excel一样能够从各种数据创建数据透视表,需要付出更多的努力.微软数十年来一直与大型程序员团队对此进行编程.距此Apache Poi很远.
到目前为止,如果将枢轴字段用作轴字段,则apache poi会添加与数据范围中的行一样多的类型为“默认”(< item t =“ default” />)的枢轴字段项目.
?这是因为他们不想看数据,因此他们假定的值与数据中的行一样多.
这很好,因为Excel在打开时将重建其数据透视缓存.但是,如果我们要预选项目,那就不好了.然后,我们必须知道可以预选哪些项目.
因此,我们至少需要与要预选的项目一样多的编号项目:< item x =“ 0” />< item x =“ 1” />< item x =“ 2” /> ; ...
我们需要构建一个缓存定义,其中包含这些项目的共享元素.
例:
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import java.util.Random;
import java.io.*;
class PivotTableTest4 {
private static void setCellData(Sheet sheet) {
Row row = sheet.createRow(0);
Cell