我的目标是在同一个Excel中创建数据透视表和饼图。我在另一个工作表中使用poi创建了数据透视表。但是,当我使用创建数据透视表的同一张Excel工作表时,却得到了空白的饼图。
创建数据透视表:
//Create Pivot Table on a separate worksheet
XSSFPivotTable pivotTable = pivot_sheet.createPivotTable(a,b,sheet);
//Add filters
pivotTable.addReportFilter(0);
pivotTable.addRowLabel(3);
pivotTable.addColumnLabel(DataConsolidateFunction.COUNT, 1);
// Write Pivot Table to File
FileOutputStream output_file = new FileOutputStream(new File(outputPath));
my_xlsx_workbook.setSheetOrder(sheetName, 0);
my_xlsx_workbook.write(output_file);
output_file.close();
我已调试它,并且“ while(rowIterator.hasNext())”中的代码未得到执行。
//Loop through worksheet data and populate Pie Chart Data set
String chart_label="a";
Number chart_data=0;
while(rowIterator.hasNext()) {
//Read Rows from Excel document
Row row = rowIterator.next();
//Read cells in Rows and get chart data
Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch(cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
chart_data=cell.getNumericCellValue();
System.out.println(chart_data);
break;
case Cell.CELL_TYPE_STRING:
chart_label=cell.getStringCellValue();
System.out.println(chart_label);
break;
}
}
所以我的理解是文件没有正确保存。我已经手动保存了文件并尝试了代码,它可以正常工作。 因此,在保存数据透视表时,请帮我解决错误的地方。