PageRenderTime 47ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/Excel/ExcelBetreuerinZahlungen.java

https://bitbucket.org/tomas12/laguna
Java | 236 lines | 177 code | 42 blank | 17 comment | 25 complexity | f275500397a5474f8aea12a4a7ca4364 MD5 | raw file
  1. package Excel;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.File;
  9. import javafx.collections.ObservableList;
  10. import org.apache.poi.hssf.util.CellRangeAddress;
  11. import org.apache.poi.hssf.util.HSSFColor.LAVENDER;
  12. import org.apache.poi.ss.usermodel.HorizontalAlignment;
  13. import org.apache.poi.xssf.usermodel.XSSFCell;
  14. import org.apache.poi.xssf.usermodel.XSSFCellStyle;
  15. import org.apache.poi.xssf.usermodel.XSSFFont;
  16. import org.apache.poi.xssf.usermodel.XSSFRichTextString;
  17. import org.apache.poi.xssf.usermodel.XSSFRow;
  18. import org.apache.poi.xssf.usermodel.XSSFSheet;
  19. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  20. import Objekte.Betreuerin;
  21. import Objekte.Familie;
  22. import Objekte.Zahlungen;
  23. import Sort.SortBetreuerinnen;
  24. import datenbank.Datenbank;
  25. public class ExcelBetreuerinZahlungen {
  26. FileOutputStream fileOutputStream = null;
  27. public void erstelleExcel(ArrayList<String> spalten) {
  28. try {
  29. fileOutputStream = new FileOutputStream("Betreuerinnen Zahlungen.xlsx");
  30. // Create Sheet.
  31. XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
  32. XSSFSheet sheet = xssfWorkbook
  33. .createSheet("Betreuerinnen Zahlungen");
  34. // Font setting for sheet.
  35. XSSFFont font = xssfWorkbook.createFont();
  36. font.setBoldweight((short) 700);
  37. // Create Styles for sheet.
  38. XSSFCellStyle headerStyle = xssfWorkbook.createCellStyle();
  39. headerStyle.setFillForegroundColor(LAVENDER.index);
  40. headerStyle.setFont(font);
  41. headerStyle.setAlignment(HorizontalAlignment.CENTER);
  42. XSSFCellStyle dataStyle = xssfWorkbook.createCellStyle();
  43. dataStyle.setWrapText(true);
  44. dataStyle.setAlignment(HorizontalAlignment.CENTER);
  45. Datenbank<Betreuerin> db = new Datenbank<Betreuerin>();
  46. ObservableList<Betreuerin> betreuerinnen = db
  47. .filltable(new Betreuerin());
  48. SortBetreuerinnen sb = new SortBetreuerinnen();
  49. betreuerinnen = sb.sortBetreuerinNr(betreuerinnen);
  50. int countzahlungen = 0;// Damit ich weiß, wie of sich Zahlungen
  51. // wiederholen müssen
  52. for (Betreuerin bet : betreuerinnen) {
  53. ArrayList<Zahlungen> z = bet.getZahlungen();
  54. if (z != null) {
  55. if (z.size() > countzahlungen) {
  56. countzahlungen = z.size();
  57. }
  58. }
  59. }
  60. XSSFRow row = sheet.createRow(0);
  61. sheet.addMergedRegion(new CellRangeAddress(0, // first
  62. // row
  63. // (0-based)
  64. 0, // last row (0-based)
  65. 0, // first column (0-based)
  66. spalten.size() * countzahlungen + 1 // last column (0-based)
  67. ));
  68. XSSFCell headerCell0 = row.createCell(0);
  69. headerCell0.setCellStyle(headerStyle);
  70. headerCell0.setCellValue("Betreuerinnen ZENTRALLISTE");
  71. XSSFRow row1 = sheet.createRow(1);
  72. sheet.addMergedRegion(new CellRangeAddress(1, // first
  73. // row
  74. // (0-based)
  75. 1, // last row (0-based)
  76. 0, // first column (0-based)
  77. 1 // last column (0-based)
  78. ));
  79. XSSFCell betreuerinnenCell = row1.createCell(0);
  80. betreuerinnenCell.setCellStyle(headerStyle);
  81. betreuerinnenCell.setCellValue("Betreuerinnen");
  82. for (int i = 0; i < countzahlungen; i++) {
  83. sheet.addMergedRegion(new CellRangeAddress(1, // first
  84. // row
  85. // (0-based)
  86. 1, // last row (0-based)
  87. 2 + (spalten.size() * i), // first column (0-based)
  88. 1 + (spalten.size() * (i + 1)) // last column (0-based)
  89. ));
  90. XSSFCell celltemp = row1.createCell(2 + (spalten.size() * i));
  91. celltemp.setCellStyle(headerStyle);
  92. celltemp.setCellValue("Zahlung " + (i + 1));
  93. }
  94. // Zweite Zeile
  95. XSSFRow headerRow = sheet.createRow(2);
  96. XSSFCell nrCell = headerRow.createCell(0);
  97. nrCell.setCellStyle(headerStyle);
  98. nrCell.setCellValue("Nr");
  99. XSSFCell nachnameCell = headerRow.createCell(1);
  100. nachnameCell.setCellStyle(headerStyle);
  101. nachnameCell.setCellValue("Nachname");
  102. for (int i = 0; i < countzahlungen; i++) {
  103. int count = (spalten.size() * i) + 2;
  104. for (String spaltenname : spalten) {
  105. XSSFCell headerCell1 = headerRow.createCell(count);
  106. headerCell1.setCellStyle(headerStyle);
  107. headerCell1.setCellValue(spaltenname);
  108. count++;
  109. }
  110. }
  111. for (int i = 0; i < betreuerinnen.size(); i++) {
  112. // Neue Zeile
  113. XSSFRow dataRow = sheet.createRow(i + 3);
  114. Betreuerin b = betreuerinnen.get(i);
  115. ArrayList<Zahlungen> zahlungen = b.getZahlungen();
  116. XSSFCell betreuerinnen_cell = dataRow.createCell(0);
  117. betreuerinnen_cell.setCellStyle(dataStyle);
  118. betreuerinnen_cell.setCellValue(new XSSFRichTextString(""
  119. + b.getNummer()));
  120. XSSFCell betreuerinnen_cell1 = dataRow.createCell(1);
  121. betreuerinnen_cell1.setCellStyle(dataStyle);
  122. betreuerinnen_cell1.setCellValue(new XSSFRichTextString(""
  123. + b.getNachname()));
  124. if (zahlungen != null) {
  125. for (int z = 0; z < countzahlungen; z++) {
  126. if (z < zahlungen.size()) {
  127. Zahlungen zahlung = zahlungen.get(z);
  128. for (int j = 0; j < spalten.size(); j++) {
  129. // Write data in data row
  130. XSSFCell cell1 = dataRow.createCell(j
  131. + spalten.size() * z + 2);
  132. cell1.setCellStyle(dataStyle);
  133. if (spalten.get(j).equals("Vereinbarungsdatum")) {
  134. cell1.setCellValue(new XSSFRichTextString(
  135. zahlung.getVereinbarung_datum()));
  136. }
  137. if (spalten.get(j).equals("Vermittlungssumme")) {
  138. cell1.setCellValue(new XSSFRichTextString(
  139. zahlung.getVereinbarung()));
  140. }
  141. if (spalten.get(j).equals("Von")) {
  142. cell1.setCellValue(new XSSFRichTextString(
  143. zahlung.getVon()));
  144. }
  145. if (spalten.get(j).equals("Bis")) {
  146. cell1.setCellValue(new XSSFRichTextString(
  147. zahlung.getBis()));
  148. }
  149. if (spalten.get(j).equals("Rechnungsnummer")) {
  150. cell1.setCellValue(new XSSFRichTextString(
  151. zahlung.getRechnungsnummer()));
  152. }
  153. if (spalten.get(j).equals("Rechnungsdatum")) {
  154. cell1.setCellValue(new XSSFRichTextString(
  155. zahlung.getRechnungsdatum()));
  156. }
  157. if (spalten.get(j).equals("Bezahldatum")) {
  158. cell1.setCellValue(new XSSFRichTextString(
  159. zahlung.getBezahlt_datum()));
  160. }
  161. if (spalten.get(j).equals("Bar/Bank")) {
  162. cell1.setCellValue(new XSSFRichTextString(
  163. zahlung.getBar_bank()));
  164. }
  165. if (spalten.get(j).equals("Kontoauszug")) {
  166. cell1.setCellValue(new XSSFRichTextString(
  167. zahlung.getKontoauszug()));
  168. }
  169. }
  170. }
  171. }
  172. }
  173. }
  174. for (int i = 0; i <= spalten.size() * countzahlungen + 1; i++) {
  175. sheet.autoSizeColumn(i);
  176. }
  177. // write in excel
  178. xssfWorkbook.write(fileOutputStream);
  179. } catch (Exception e) {
  180. e.printStackTrace();
  181. } finally {
  182. /*
  183. * Close File Output Stream
  184. */
  185. try {
  186. if (fileOutputStream != null) {
  187. fileOutputStream.close();
  188. }
  189. } catch (IOException ex) {
  190. ex.printStackTrace();
  191. }
  192. }
  193. }
  194. }