Hey zusammen!
In meinem jetzigen Projekt erstelle ich eine Pivot Tabelle mit Hilfe von Apache POI.
Das funktioniert auch alles, jedoch möchte ich noch ein paar Optimierungen vornehmen.
Ich erstelle einen Filter aus einer Spalte, welche die vier Himmelrichtungen besitzt.
Mit der Funktion addReportFilter(); kann ich zwar manuell in Excel nach den Himmelsrichtungen sortieren,
jedoch möchte ich Im Code schon ein Standardwert wie bspw. "Süd" festlegen.
Immer wenn ich die Excel-Tabelle öffne, soll mir die Pivot-Tabelle also die gefilterten Daten nach "Süd" aufzeigen.
Ist das möglich und wenn ja wie?
Unten meinen bisherigen Code:
In meinem jetzigen Projekt erstelle ich eine Pivot Tabelle mit Hilfe von Apache POI.
Das funktioniert auch alles, jedoch möchte ich noch ein paar Optimierungen vornehmen.
Ich erstelle einen Filter aus einer Spalte, welche die vier Himmelrichtungen besitzt.
Mit der Funktion addReportFilter(); kann ich zwar manuell in Excel nach den Himmelsrichtungen sortieren,
jedoch möchte ich Im Code schon ein Standardwert wie bspw. "Süd" festlegen.
Immer wenn ich die Excel-Tabelle öffne, soll mir die Pivot-Tabelle also die gefilterten Daten nach "Süd" aufzeigen.
Ist das möglich und wenn ja wie?
Unten meinen bisherigen Code:
Code:
public static void CreatePivotTable() {
String fileNameRead = Path.INTERN_PATH + "\\" + "Intern.xlsx";
String fileNameWrite = Path.ERGEBNIS_PATH+ "\\" + "VTD.xlsx";
try {
FileInputStream internExcelTable = new FileInputStream(new File(fileNameRaed));
//Erzeugen eines Workbooks und der Basis-Tabelle
XSSFWorkbook wb = new XSSFWorkbook(internExcelTable);
//Erzeugen eines neuen Sheets
XSSFSheet pivotSheet = wb.createSheet("My-Sheet");
XSSFSheet sheet = wb.getSheetAt(0);
//Festlegen des relevanten Bereiches für die Pivot-Tabelle
AreaReference a = new AreaReference("A1:P721", SpreadsheetVersion.EXCEL2007);
//Festlegen des Startbereiches der Pivot-Tabelle
CellReference b = new CellReference("A1");
//Erzeugen der Tabelle
XSSFPivotTable pivotTable = pivotSheet.createPivotTable(a,b,sheet);
//Erzeugen der verschied. Filter
pivotTable.addReportFilter(15); //Filtern der Himmelsrichtungen
pivotTable.addRowLabel(14);
pivotTable.addRowLabel(1);
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 5);
pivotTable.addColumnLabel(DataConsolidateFunction.COUNT, 5);
OutputStream os = new FileOutputStream(fileNameWrite);
wb.write(os);
internExcelTable.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Zuletzt bearbeitet: