PageRenderTime 53ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/Excel/ExcelFamilieBetreuung.java

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