ソース管理に追加(今まで漏れていた)。 Branch_JAR_2021-06-03_0656_BUILD JAR_2021-06-03_0656_BUILD_RE
authorsatomichan <git-miya.20210624@...>
Thu, 24 Jun 2021 23:58:36 +0000 (08:58 +0900)
committersatomichan <git-miya.20210624@...>
Thu, 24 Jun 2021 23:58:36 +0000 (08:58 +0900)
nucalgen/src/main/java/jp/satomichan/nucalgen/MextStdFoodCompTable.java [new file with mode: 0644]

diff --git a/nucalgen/src/main/java/jp/satomichan/nucalgen/MextStdFoodCompTable.java b/nucalgen/src/main/java/jp/satomichan/nucalgen/MextStdFoodCompTable.java
new file mode 100644 (file)
index 0000000..246f5c0
--- /dev/null
@@ -0,0 +1,119 @@
+package jp.satomichan.nucalgen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.XMLConfiguration;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+
+public class MextStdFoodCompTable {
+       private String brightColoredVegetablesXmlFileName = "";
+       private List<String> brightColoredVegetableList = new ArrayList<String>();
+
+       MextStdFoodCompTable(String brightColoredVegetablesXmlFileName_){
+               this.brightColoredVegetablesXmlFileName = brightColoredVegetablesXmlFileName_;
+
+               try {
+                       XMLConfiguration config = new XMLConfiguration(this.brightColoredVegetablesXmlFileName);
+                       List<Object> vegetableNames = config.getList("bright-colored-vegetable.name");
+                       for(Object vegeObj : vegetableNames) {
+                               this.brightColoredVegetableList.add(vegeObj.toString());
+                       }
+
+               } catch (ConfigurationException e) {
+                       e.printStackTrace();
+               }
+       }
+
+
+
+       //変換
+       void processInto(Workbook outputWorkbook) {
+               Sheet foodComposithonSheet = outputWorkbook.getSheetAt(0);
+               outputWorkbook.setSheetName(0, "成分表");
+
+               //「成分識別子」行
+               Row idRow = foodComposithonSheet.getRow(11);
+               for(int i = 4; i <= 61; i++) {
+                       Cell idCell = idRow.getCell(i);
+                       idCell.setCellValue(idCell.toString().replaceAll(" ", ""));
+               }
+               idRow.createCell(62).setCellValue("GROUP");
+               idRow.createCell(63).setCellValue("BRIGHT_COLORED_VEGETABLE");
+
+
+               //セル加工
+               for(int compSheetRowIndex = 12; compSheetRowIndex <= 9999; compSheetRowIndex++) {
+                       Row compRow = foodComposithonSheet.getRow(compSheetRowIndex);
+                       if(compRow == null) {
+                               break;
+                       }
+
+                       int group = Integer.parseInt(compRow.getCell(1).toString()) / 1000;
+
+                       for (int cellCount = 1; cellCount <= 61; cellCount++) {
+                               Cell thisCell = compRow.getCell(cellCount);
+
+                               String cellString = thisCell.toString();
+
+                               cellString = cellString.replaceAll("\\(", "");
+                               cellString = cellString.replaceAll("\\)", "");
+                               cellString = cellString.replaceAll("-", "0");
+                               cellString = cellString.replaceAll("Tr", "0");
+
+                               //セル値・書式 コピー
+                               //Cell compCell = foodComposithonSheet.getRow(compSheetRowIndex).getCell(cellCount);
+                               Cell compCell = compRow.createCell(cellCount);
+                               compCell.setCellValue(cellString);
+                               compCell.setCellStyle(thisCell.getCellStyle());
+                               compCell.setCellType(thisCell.getCellTypeEnum());
+
+                               if(cellString.matches("^[\\d\\.]+$")) {
+                                       compCell.setCellValue(Double.parseDouble(cellString));
+                                       CellStyle aCellStyle = compCell.getCellStyle();
+                                       aCellStyle.setDataFormat((short) 0);
+                                       compCell.setCellStyle(aCellStyle);
+                               }
+
+
+                       } //for cellCount
+
+
+
+                       //食品群(1~18)書き込み
+                       compRow.createCell(62).setCellValue(group);
+
+                       //緑黄色野菜か?
+                       boolean isBrightColored = false;
+                       if(group == 6 && brightColoredVegetablesXmlFileName.length() > 0) {
+                               String foodName = compRow.getCell(3).getStringCellValue();
+                               for(String aBright : this.brightColoredVegetableList) {
+                                       if(foodName.matches(".*" + aBright + ".*")) {
+                                               isBrightColored = true;
+                                               break;
+                                       }
+                               }
+
+                               if(isBrightColored) {
+                                       compRow.createCell(63).setCellValue(1);
+                               }
+                       }
+
+
+               } //for compSheetRowIndex
+
+
+               //元の表 削除
+               for(int i = outputWorkbook.getNumberOfSheets() - 1; i > 0; i--) {
+                       outputWorkbook.removeSheetAt(i);
+               }
+       }
+
+
+
+}