PageRenderTime 86ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/Excel/ExcelFamilieZahlungen.java

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