xlsmapper를 만져봤어요.

8472 단어 xlsmapperJava

이것은 무엇이냐


알았으니까xlsmapper 조금 만져봤어요.

시도된 환경

  • Java8(jdk1.8.0_102)
  • XlsMapper(1.4.4)
  • eclipse
  • 환경 구조


    여기.에 적힌 대로 하면 됩니다.

    시도된 내용


    현재 원하는 사람은 Excel 파일을 읽는 사람이기 때문에 파일만 읽을 수 있습니다.

    Java 코드


    PojoSheet.java

    import com.gh.mygreen.xlsmapper.annotation.LabelledCellType;
    import com.gh.mygreen.xlsmapper.annotation.XlsLabelledCell;
    import com.gh.mygreen.xlsmapper.annotation.XlsSheet;
    
    @XlsSheet(name="Sheet1")
    public class PojoSheet {
    
        @XlsLabelledCell(label="midashi1", type=LabelledCellType.Bottom)
        String cell1;
        @XlsLabelledCell(label="midashi2", type=LabelledCellType.Bottom)
        String cell2;
        @XlsLabelledCell(label="midashi3", type=LabelledCellType.Bottom)
        String cell3;
        @XlsLabelledCell(label="midashi4", type=LabelledCellType.Bottom)
        String cell4;
        @XlsLabelledCell(label="midashi5", type=LabelledCellType.Bottom)
        String cell5;
    
    }
    

    Test.java (주 클래스)

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    
    import com.gh.mygreen.xlsmapper.XlsMapper;
    import com.gh.mygreen.xlsmapper.XlsMapperException;
    
    public class Test {
    
        private static final String xlsxFileAddress = "G:\\work\\Test.xlsx";
    
    
        public static void main(String[] args) throws FileNotFoundException, XlsMapperException {
    
            XlsMapper xlsMapper = new XlsMapper();
            Object[] sheets = xlsMapper.loadMultiple(
                    new FileInputStream(xlsxFileAddress),                  // 読み込むExcelファイル
                    new Class[]{PojoSheet.class}  // アノテーションを付与したクラス。
                    );
    
    
            for(Object obj : sheets) {
    
                PojoSheet s = (PojoSheet)obj;
                System.out.println(s.cell1 + ", " + s.cell2 + ", " + s.cell3 + ", " + s.cell4 + ", " + s.cell5);
    
            }
    
        }
    
    }
    

    테스트된 Excel 파일



    처리 결과


    Excel 파일의 컨텐트와 Java 코드가 올바르게 조합된 경우

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
    Cell1, Cell2, Cell3, null, Cell5
    

    Excel 파일의 컨텐트와 Java 코드가 올바르지 않은 경우(제목의 문이 다른 경우)


    제목이 일치하는 항목이 없다고 합니다. 오류입니다.
    Exception in thread "main" com.gh.mygreen.xlsmapper.fieldprocessor.CellNotFoundException: Cell 'midashi5' not found in sheet 'Sheet1'
        at com.gh.mygreen.xlsmapper.Utils.getCell(Utils.java:1064)
        at com.gh.mygreen.xlsmapper.Utils.getCell(Utils.java:1031)
    :
    

    총결산


    장점

  • 테이블 형식의 Excel을 읽고 처리하려는 경우 제목을 정의하여 쉽게 읽을 수 있습니다.
  • 표의 레이아웃이 바뀌었고 제목은 변하지 않았지만 위치가 바뀌었을 때도 대응할 수 있다.
  • 일반적으로 아파치 POI를 호출하는 것보다 코드를 상당히 간단하게 쓸 수 있다.
  • 관심 사항

  • Apache POI 기반, 대용량 Excel 파일을 읽을 때 OutOfMemory Error(검증 필요)
  • 토할 수 있음
  • 대용량 파일 쓰기도 마찬가지로 느려질 수 있습니다.
  • 좋은 웹페이지 즐겨찾기