Hallo Zusammen,
ich habe eine Frage bezüglich design meines Kodes.
Ich lese aus einer MySQL Datenbank verarbeite die Daten danach gebe ich sie in Excel-format aus. Dafür benutze ich Apache POI-XSSF.
Poi hat eine Workbook Objekt:
XSSFWorkbook workBook = new XSSFWorkbook();
Diese XSSFWorkbook Classe hat static methoden. Wenn ich einen neuen Excell tabelle erstellen muss soll ich wie folgt vorgehen:
XSSFSheet sheetwrite = workBook.createSheet("time");
Ich habe mehr als 25 Tabs in meinem Excel-Output und jede excel-sheet ist sehr komplex. Wie soll ich meinen Programm strukturieren.
Ich habe wie folgt vorgegangen:
Das finde ich jetzt aber unlogisch weil ich die Objekte erstelle und danach sie nicht mehr benutze. Eclipse sagt mir sogar dass ich die Objecte löschen soll weil ich sie nirgendswo benutze.
Wie könnte mann alles besser strukturieren?
Wenn ich für jede Tabelle eine andere Methode implementiere, wird meine Klasse zu lang und zu komplex. Soll ich trotzdem für jede Tab eine getrennte methode implementieren?
Oder
Ich kann wie folgt neue Classen jeweils mit einer statik Method erstellen.
Was wäre eine bessere Struktur? Könntet ihr mir was besseres Vorschlagen?
Danke im Voraus
ich habe eine Frage bezüglich design meines Kodes.
Ich lese aus einer MySQL Datenbank verarbeite die Daten danach gebe ich sie in Excel-format aus. Dafür benutze ich Apache POI-XSSF.
Poi hat eine Workbook Objekt:
XSSFWorkbook workBook = new XSSFWorkbook();
Diese XSSFWorkbook Classe hat static methoden. Wenn ich einen neuen Excell tabelle erstellen muss soll ich wie folgt vorgehen:
XSSFSheet sheetwrite = workBook.createSheet("time");
Ich habe mehr als 25 Tabs in meinem Excel-Output und jede excel-sheet ist sehr komplex. Wie soll ich meinen Programm strukturieren.
Ich habe wie folgt vorgegangen:
Java:
public XSSFWorkbook workBook = new XSSFWorkbook();
public ExcelOutput(ArrayList<Plant> carList, ArrayList<OptionPlant> carOptionsList) {
TimeTabs timeTabs = new TimeTabs(workBook);
Hierarchy hierarchy = new Hierarchy(carList, carOptionsList, workBook);
Usw. mehrere Objects für jede gettrennte tabelle Und
String outputFile = "C:/***/filename.xlsx";
try {
InputOutput.writeExcel(workBook, outputFile);
} catch (IOException e) {
JFrame IOframe = new JFrame();
JOptionPane.showMessageDialog(IOframe, "Input, Output Error");
e.printStackTrace();
}
Java:
public class TimeTabs {
public TimeTabs(XSSFWorkbook workBook) {
XSSFRow rowwrite;
XSSFCell cellwrite;
XSSFSheet sheetwrite = workBook.createSheet("time");
for (int i = 0; i < TimeGen.nameoftimeslots.size(); i++) {
rowwrite = sheetwrite.createRow(i);
cellwrite = rowwrite.createCell(0);
//arraytime[i] = "TIME_";
//arraytime[i] += Integer.toString(i+1);
cellwrite.setCellValue(TimeGen.nameoftimeslots.get(i));
}
Usw.
Das finde ich jetzt aber unlogisch weil ich die Objekte erstelle und danach sie nicht mehr benutze. Eclipse sagt mir sogar dass ich die Objecte löschen soll weil ich sie nirgendswo benutze.
Wie könnte mann alles besser strukturieren?
Wenn ich für jede Tabelle eine andere Methode implementiere, wird meine Klasse zu lang und zu komplex. Soll ich trotzdem für jede Tab eine getrennte methode implementieren?
Oder
Ich kann wie folgt neue Classen jeweils mit einer statik Method erstellen.
Java:
public XSSFWorkbook workBook = new XSSFWorkbook();
public ExcelOutput(ArrayList<Plant> carList, ArrayList<OptionPlant> carOptionsList) {
TimeTabs.generateTimeTabs (workBook);
Hierarchy.generateHierarchy (carList, carOptionsList, workBook);
Usw. mehrere Static Methoden für jede getrennte tabelle Und
String outputFile = "C:/***/filename.xlsx";
try {
InputOutput.writeExcel(workBook, outputFile);
} catch (IOException e) {
JFrame IOframe = new JFrame();
JOptionPane.showMessageDialog(IOframe, "Input, Output Error");
e.printStackTrace();
}
Java:
public class TimeTabs {
public static void generateTimeTabs (XSSFWorkbook workbook)
XSSFRow rowwrite;
XSSFCell cellwrite;
XSSFSheet sheetwrite = workBook.createSheet("time");
for (int i = 0; i < TimeGen.nameoftimeslots.size(); i++) {
rowwrite = sheetwrite.createRow(i);
cellwrite = rowwrite.createCell(0);
//arraytime[i] = "TIME_";
//arraytime[i] += Integer.toString(i+1);
cellwrite.setCellValue(TimeGen.nameoftimeslots.get(i));
}
Usw.
Was wäre eine bessere Struktur? Könntet ihr mir was besseres Vorschlagen?
Danke im Voraus
Zuletzt bearbeitet von einem Moderator: