X-Git-Url: https://satomichan.jp/gitweb/?p=nucalgen;a=blobdiff_plain;f=nucalgen%2Fsrc%2Fmain%2Fjava%2Fjp%2Fsatomichan%2Fnucalgen%2FNucalgen.java;fp=nucalgen%2Fsrc%2Fmain%2Fjava%2Fjp%2Fsatomichan%2Fnucalgen%2FNucalgen.java;h=2cf039ed8b4619afadd7093d4c9785f84c8c3d10;hp=b6065c9262bb8df7a7656526906b157076dfbe3a;hb=5ead7185b8b04d74757dd3a9b07caf0f9eca4e63;hpb=b044ded26417f6c8bba39a781f34aadc93a00d42 diff --git a/nucalgen/src/main/java/jp/satomichan/nucalgen/Nucalgen.java b/nucalgen/src/main/java/jp/satomichan/nucalgen/Nucalgen.java index b6065c9..2cf039e 100644 --- a/nucalgen/src/main/java/jp/satomichan/nucalgen/Nucalgen.java +++ b/nucalgen/src/main/java/jp/satomichan/nucalgen/Nucalgen.java @@ -4,7 +4,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -25,7 +24,6 @@ import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellReference; import jp.satomichan.nucalgen.addition.AcCell; -import jp.satomichan.nucalgen.addition.AcCellType; import jp.satomichan.nucalgen.addition.AcRow; import jp.satomichan.nucalgen.addition.AdditionConfig; import jp.satomichan.nucalgen.addition.AdditionUtil; @@ -41,8 +39,6 @@ public class Nucalgen { options.addOption(Option.builder("o").required().hasArg().longOpt("output").build()); options.addOption(Option.builder("l").required().hasArg().longOpt("lines").build()); options.addOption(Option.builder("add").hasArgs().longOpt("addition").build()); - - options.addOption(Option.builder("groupsum").longOpt("with-group-sum").build()); options.addOption(Option.builder("bright").hasArg().longOpt("bright-colored-vegetables-list").build()); options.addOption(Option.builder("protect").longOpt("set-protect").build()); options.addOption(Option.builder("processed").longOpt("use-processed-table").build()); @@ -164,7 +160,6 @@ public class Nucalgen { if(aColumn.isUseSum()) { String sumArea = new CellReference(rowIndex, colIndex, true, true).formatAsString(); namedAreaMap.put("SUM_" + aColumn.getAlias(), sumArea); - //System.out.println("SUM_" + aColumn.getAlias() + " --- " + sumArea); } } @@ -185,12 +180,6 @@ public class Nucalgen { } } - //「食品群別摂取量」出力 - if(cmd.hasOption("with-group-sum")) { - rowIndex += 3; - rowIndex = generateGroupSum(calcSheet, csPool, rowIndex, namedAreaMap); - } - //未使用表シート削除 for(int si = outputWorkbook.getNumberOfSheets() - 1 ; si >= 1 ; si--) { @@ -221,52 +210,12 @@ public class Nucalgen { } - //群別摂取量 - private static int generateGroupSum(Sheet calcSheet, CellStylePool csPool, int rowIndex, Map _namedAreaMap) { - - List groupName = Arrays.asList("0", "穀類", "いも及びでん粉類", "砂糖及び甘味類", "豆類", - "種実類", "野菜類", "果実類", "きのこ類", "藻類", "魚介類", "肉類", "卵類", "乳類", - "油脂類", "菓子類", "し好飲料類", "調味料及び香辛料類", "調理加工食品類"); - - - - Row groupRow = calcSheet.createRow(rowIndex); - groupRow.createCell(1).setCellValue("食品群"); - groupRow.createCell(3).setCellValue("摂取量(g)"); - rowIndex++; - - for(int i = 1; i <= 18; i++,rowIndex++) { - Row thisRow = calcSheet.createRow(rowIndex); - thisRow.createCell(1).setCellValue(i); - thisRow.createCell(2).setCellValue(groupName.get(i)); - Cell cCell = thisRow.createCell(3); - cCell.setCellStyle(csPool.getCellStyle("")); - //cCell.setCellFormula("SUMIF(AREA_GROUP, " + i + ", AREA_INTAKE)"); - cCell.setCellFormula("SUMIF(" + _namedAreaMap.get("AREA_GROUP") + ", " + i + ", " + _namedAreaMap.get("AREA_INTAKE") + ")"); - - if(i == 6) { - rowIndex++; - thisRow = calcSheet.createRow(rowIndex); - thisRow.createCell(2).setCellValue("うち 緑黄色野菜"); - Cell bcvCell = thisRow.createCell(3); - bcvCell.setCellStyle(csPool.getCellStyle("0")); - //bcvCell.setCellFormula("SUMIF(AREA_BRIGHT_COLORED_VEGETABLE, 1, AREA_INTAKE)"); - bcvCell.setCellFormula("SUMIF(" + _namedAreaMap.get("AREA_BRIGHT_COLORED_VEGETABLE") + ", 1, " + _namedAreaMap.get("AREA_INTAKE") + ")"); - } - - - } - - return rowIndex; - } //「付加行」生成 private static int generateAddition(String fileName, Sheet calcSheet, CellStylePool csPool, int rowIndex, Map _namedAreaMap) { - System.out.println("ADDITION : " + fileName); - AdditionConfig ac = AdditionUtil.additionFileReader(new File(fileName)); for(AcRow acRow : ac.getRows()) { //行ごとのループ Row thisRow = calcSheet.createRow(rowIndex); @@ -280,8 +229,9 @@ public class Nucalgen { _namedAreaMap.put(acCell.getAlias(), new CellReference(rowIndex, colIndex, true, true).formatAsString()); } - if(acCell.getCellType() == AcCellType.FORMULA) { - String formula = "<" + acCell.getValue() + ">"; + //formula 計算式 + if(acCell.getFormula() != null){ + String formula = "<" + acCell.getFormula() + ">"; for(Entry keyValue : _namedAreaMap.entrySet()) { String k = keyValue.getKey(); String v = keyValue.getValue(); @@ -291,8 +241,14 @@ public class Nucalgen { formula = formula.replaceAll(">$", ""); } thisCell.setCellFormula(formula); - } else { + + //value そのままの値 + } else if(acCell.getValue() != null) { thisCell.setCellValue(acCell.getValue()); + + //formula でも value でもない + } else { + // }