|
|
@ -12,9 +12,11 @@ import java.text.SimpleDateFormat;
|
|
|
|
import java.time.DayOfWeek;
|
|
|
|
import java.time.DayOfWeek;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.format.TextStyle;
|
|
|
|
import java.time.format.TextStyle;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Calendar;
|
|
|
|
import java.util.Calendar;
|
|
|
|
import java.util.Comparator;
|
|
|
|
import java.util.Comparator;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Locale;
|
|
|
|
import java.util.Locale;
|
|
|
@ -26,7 +28,11 @@ import java.util.stream.Collectors;
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.io.FilenameUtils;
|
|
|
|
import org.apache.commons.io.FilenameUtils;
|
|
|
|
|
|
|
|
import org.apache.poi.hssf.util.HSSFColor;
|
|
|
|
|
|
|
|
import org.apache.poi.ss.usermodel.Font;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cokr.xit.base.file.xls.XLSWriter;
|
|
|
|
|
|
|
|
import cokr.xit.base.file.xls.XLSWriter.Styler;
|
|
|
|
import cokr.xit.fims.sndb.service.bean.SndngBean;
|
|
|
|
import cokr.xit.fims.sndb.service.bean.SndngBean;
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
|
|
|
|
|
|
@ -422,5 +428,50 @@ public class CmmnUtil {
|
|
|
|
return band6;
|
|
|
|
return band6;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 요소의 갯수가 같은 리스트 2개를 병합한 새 리스트를 반환한다.<br/>
|
|
|
|
|
|
|
|
* 새 리스트의 정렬순서는 1차적으로 기존 요소의 인덱스번호, 2차적으로 해당 요소가 기존에 첫번째 리스트의 요소인지 여부로 정렬한다.
|
|
|
|
|
|
|
|
* @param list1, list2
|
|
|
|
|
|
|
|
* @return list3
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static List<?> mergeListByIndex(List<?> list1, List<?> list2) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List list3 = new ArrayList<>();
|
|
|
|
|
|
|
|
for(int i=0; i < list1.size(); i++) {
|
|
|
|
|
|
|
|
list3.add(list1.get(i));
|
|
|
|
|
|
|
|
list3.add(list2.get(i));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return list3;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 엑셀의 열 제목 길이 목록을 입력받아서 길이를 제외한 스타일이 동일한 스타일 목록 반환한다.<br/>
|
|
|
|
|
|
|
|
* @param widths 열 제목 길이, xlsxWriter
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static List<Styler> makeHeadersByDiffrentWidths(List<Integer> widths, XLSWriter xlsxWriter){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Styler> result = new ArrayList<Styler>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Integer, Styler> headerWidthMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i=0; i < widths.size(); i++) {
|
|
|
|
|
|
|
|
if(headerWidthMap.get(widths.get(i)) == null) {
|
|
|
|
|
|
|
|
headerWidthMap.put(
|
|
|
|
|
|
|
|
widths.get(i),
|
|
|
|
|
|
|
|
new XLSWriter.Styler()
|
|
|
|
|
|
|
|
.width(widths.get(i))
|
|
|
|
|
|
|
|
.foregroundColor(HSSFColor.HSSFColorPredefined.LIGHT_BLUE.getIndex())
|
|
|
|
|
|
|
|
.configure(styler -> {
|
|
|
|
|
|
|
|
Font font = xlsxWriter.workbook().createFont();
|
|
|
|
|
|
|
|
font.setColor(HSSFColor.HSSFColorPredefined.WHITE.getIndex());
|
|
|
|
|
|
|
|
styler.font(font);
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
result.add(headerWidthMap.get(widths.get(i)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|