+++ /dev/null
-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 MoeStdFoodCompTable {
- private String brightColoredVegetablesXmlFileName = "";
- private List<String> brightColoredVegetableList = new ArrayList<String>();
-
- MoeStdFoodCompTable(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.cloneSheet(0);
- outputWorkbook.setSheetName(18, "成分表");
- outputWorkbook.setSheetOrder("成分表", 0);
- //Sheet foodComposithonSheet = outputWorkbook.createSheet("成分表");
-
- //「成分識別子」行
- Row idRow = foodComposithonSheet.getRow(10);
- 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");
-
- int compSheetRowIndex = 11;
-
- //18 の食品群ごとの処理
- for(int group = 1; group <= 18; group++) {
- Sheet thisSheet = outputWorkbook.getSheetAt(group);
-
- int rowCount = 0;
- for (Row thisRow : thisSheet) {
- rowCount++;
- if(rowCount < 12) {continue;}
-
- Row compRow = foodComposithonSheet.createRow(compSheetRowIndex);
-
- for (int cellCount = 1; cellCount <= 61; cellCount++) {
- Cell thisCell = thisRow.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);
- }
-
-
- } //CELL
-
- //食品群(1~18)書き込み
- compRow.createCell(62).setCellValue(group);
-
-
- //緑黄色野菜か?
- if(brightColoredVegetablesXmlFileName.length() > 0) {
- boolean isBrightColored = false;
- String foodName = thisRow.getCell(3).getStringCellValue();
- for(String aBright : this.brightColoredVegetableList) {
- if(foodName.matches(aBright + ".*")) {
- isBrightColored = true;
- break;
- }
- }
-
- if(isBrightColored) {
- compRow.createCell(63).setCellValue(1);
- }
- }
-
-
- compSheetRowIndex++;
-
- } //ROW
-
- } //GROUP
-
- //元の表 削除
- for(int i = 18; i > 0; i--) {
- outputWorkbook.removeSheetAt(i);
- }
- }
-
-
-
-}