當前位置: 首頁>>代碼示例>>Java>>正文


Java SheetParser類代碼示例

本文整理匯總了Java中org.bbreak.excella.core.SheetParser的典型用法代碼示例。如果您正苦於以下問題:Java SheetParser類的具體用法?Java SheetParser怎麽用?Java SheetParser使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


SheetParser類屬於org.bbreak.excella.core包,在下文中一共展示了SheetParser類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: parseRow

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
/**
 * 行単位で解析し、必要なら改ページを挿入する
 */
protected void parseRow( Sheet sheet, SheetParser sheetParser, SheetData sheetData, Row row, int rowIndex) {
    int firstColNum = row.getFirstCellNum();
    int lastColNum = row.getLastCellNum() - 1;

    for ( int colIndex = firstColNum; colIndex <= lastColNum; colIndex++) {
        Cell cell = row.getCell( colIndex);
        if ( cell != null) {
            if ( cell.getCellTypeEnum() == CellType.STRING && cell.getStringCellValue().contains( BreakParamParser.DEFAULT_TAG)) {
                // 改ページを挿入
                if ( isInMergedRegion( sheet, row, cell)) {
                    setRowBreakMergedRegion( sheet, row, cell);
                } else {
                    setRowBreak( sheet, row, cell);
                }
            }
        }
    }

}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:23,代碼來源:BreakAdapter.java

示例2: isControlRow

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
/**
 * 製禦行の有無を返す。
 * 
 * @param sheet
 * @param sheetParser
 * @param row
 * @return
 */
private boolean isControlRow( Sheet sheet, SheetParser sheetParser, Row row, Cell cell) {

    List<TagParser<?>> parsers = sheetParser.getTagParsers();

    for ( TagParser<?> parser : parsers) {
        try {
            if ( parser.isParse( sheet, cell)) {
                if ( parser instanceof ReportsTagParser) {
                    ReportsTagParser<?> reportsTagParser = ( ReportsTagParser<?>) parser;
                    if ( reportsTagParser.useControlRow()) {
                        return true;
                    }
                }
            }
        } catch ( ParseException e) {
            // 解析できないものは扱わない
            continue;
        }
    }
    return false;
}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:30,代碼來源:RemoveAdapter.java

示例3: testPostParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
/**
 * {@link org.bbreak.excella.reports.listener.BreakAdapter#postParse(org.apache.poi.ss.usermodel.Sheet, org.bbreak.excella.core.SheetParser, org.bbreak.excella.core.SheetData)} のためのテスト・メソッド。
 */
@Test
public void testPostParse() {

    Workbook workbook = getWorkbook();

    BreakAdapter adapter = new BreakAdapter();

    SheetParser sheetParser = new SheetParser();
    List<ReportsTagParser<?>> reportParsers = new ArrayList<ReportsTagParser<?>>( ReportCreateHelper.createDefaultParsers().values());

    for ( ReportsTagParser<?> parser : reportParsers) {
        sheetParser.addTagParser( parser);
    }

    Sheet sheet = workbook.getSheetAt( 0);
    try {
        adapter.postParse( sheet, sheetParser, null);
    } catch ( ParseException e) {
        e.printStackTrace();
        fail();
    }
    checkSheet( workbook.getSheetName( 0), sheet, true);
}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:27,代碼來源:BreakAdapterTest.java

示例4: postParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
/**
 * @see org.bbreak.excella.reports.listener.ReportProcessAdaptor#postParse(org.apache.poi.ss.usermodel.Sheet, org.bbreak.excella.core.SheetParser, org.bbreak.excella.core.SheetData)
 */
@Override
public void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException {
    int firstRowNum = sheet.getFirstRowNum();
    int lastRowNum = sheet.getLastRowNum();

    for ( int rowIndex = firstRowNum; rowIndex <= lastRowNum; rowIndex++) {
        Row row = sheet.getRow( rowIndex);
        if ( row != null) {
            parseRow( sheet, sheetParser, sheetData, row, rowIndex);
        }
    }
}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:16,代碼來源:BreakAdapter.java

示例5: postParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
@Override
public void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException {

    int firstRowNum = sheet.getFirstRowNum();
    int lastRowNum = sheet.getLastRowNum();

    for ( int rowIndex = firstRowNum; rowIndex <= lastRowNum; rowIndex++) {

        Row row = sheet.getRow( rowIndex);
        if ( row != null) {
            int firstColNum = row.getFirstCellNum();
            int lastColNum = row.getLastCellNum() - 1;
            boolean isRowFlag = false;

            for ( int colIndex = firstColNum; colIndex <= lastColNum; colIndex++) {
                Cell cell = row.getCell( colIndex);
                if ( cell != null) {
                    if ( cell.getCellTypeEnum() == CellType.STRING && cell.getStringCellValue().contains( RemoveParamParser.DEFAULT_TAG)) {
                        // タグのパラメータを取得
                        String[] paramArray = getStrParam( sheet, rowIndex, colIndex);

                        // 削除単位(セル・列・行)
                        String removeUnit = paramArray[0];
                        // タグを持つセルを削除
                        row.removeCell( cell);

                        // 行全體削除の場合の処理
                        if ( removeUnit.equals( "") || removeUnit.equals( ROW)) {
                            removeRegion( sheet, rowIndex, -1);
                            removeControlRow( sheet, rowIndex);
                            isRowFlag = true;
                            break;
                        } else if ( removeUnit.equals( CELL) || removeUnit.equals( COLUMN)) {
                            // セルまたは列全體削除の場合の処理
                            removeCellOrCol( paramArray, removeUnit, sheet, row, cell, rowIndex, colIndex);
                        }
                        lastColNum = row.getLastCellNum() - 1;
                        colIndex--;
                    }
                    // 製禦行の処理
                    if ( isControlRow( sheet, sheetParser, row, cell)) {
                        removeControlRow( sheet, rowIndex);
                        isRowFlag = true;
                        break;
                    }
                }
            }
            // 行を削除した場合
            if ( isRowFlag) {
                lastRowNum = sheet.getLastRowNum();
                rowIndex--;
            }
        }
    }
}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:56,代碼來源:RemoveAdapter.java

示例6: postParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
public void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException {
}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:3,代碼來源:ReportProcessAdaptor.java

示例7: preParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
public void preParse( Sheet sheet, SheetParser sheetParser) throws ParseException {
}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:3,代碼來源:ReportProcessAdaptor.java

示例8: postParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
@Override
public void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException {
    processStrings.add( "シート解析後処理 CustomListener#postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData)");
    // System.out.println("sheet=" + sheet + ",sheetParser=" + sheetParser+ ",sheetData=" + sheetData);
    super.postParse( sheet, sheetParser, sheetData);
}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:7,代碼來源:ReportProcessorTest.java

示例9: preParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
@Override
public void preParse( Sheet sheet, SheetParser sheetParser) throws ParseException {
    processStrings.add( "シート解析前処理 CustomListener#preParse( Sheet sheet, SheetParser sheetParser)");
    // System.out.println("sheet=" + sheet +",SheetParser=" + sheetParser);
    super.preParse( sheet, sheetParser);
}
 
開發者ID:excella-core,項目名稱:excella-reports,代碼行數:7,代碼來源:ReportProcessorTest.java

示例10: postParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
/**
 * 解析後処理<BR>
 * 設定情報に基づき、データをオブジェクトに変換し、<BR>
 * 結果をリストに入れて、SheetDataにセットする<BR>
 * 
 * @param sheet 対象シート
 * @param sheetParser 対象シートパーサ
 * @param sheetData 解析結果シートデータ
 */
@SuppressWarnings( "unchecked")
public void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException {

    // 結果オブジェクトのリスト
    List<Object> results = new ArrayList<Object>();

    // 対象シートにSheetToJavaParserが存在するか
    List<TagParser<?>> tagParsers = sheetParser.getTagParsers();

    // 処理後不要になるSheetToJavaSettingParserの
    // データを判別するタグのリスト
    List<String> removeTags = new ArrayList<String>();

    // 処理をするタグの一覧を生成
    List<String> targetTags = new ArrayList<String>();
    for ( TagParser<?> tagParser : tagParsers) {
        // SheetToJavaParserのタグ
        if ( tagParser instanceof SheetToJavaParser) {
            targetTags.add( tagParser.getTag());
        }
        // SheetToJavaSettingParserのタグ
        if ( tagParser instanceof SheetToJavaSettingParser) {
            removeTags.add( tagParser.getTag());
        }
    }

    // ワークブック取得
    Workbook workbook = sheet.getWorkbook();

    // 処理対象のタグでループ
    for ( String tag : targetTags) {

        List<SheetToJavaParseInfo> sheetInfoList = ( List<SheetToJavaParseInfo>) sheetData.get( tag);

        if ( sheetInfoList == null) {
            continue;
        }

        // 設定情報(シート)単位でループ
        for ( SheetToJavaParseInfo sheetInfo : sheetInfoList) {

            List<SheetToJavaSettingInfo> allColumnInfoList = ( List<SheetToJavaSettingInfo>) sheetData.get( sheetInfo.getSettingTagName());

            // 今回処理対象シート分の設定を取得
            List<SheetToJavaSettingInfo> targetColumnInfoList = new ArrayList<SheetToJavaSettingInfo>();
            for ( SheetToJavaSettingInfo columnInfo : allColumnInfoList) {
                if ( columnInfo.getSheetName().equals( sheetInfo.getSheetName())) {
                    targetColumnInfoList.add( columnInfo);
                }
            }

            // 対象シートデータの読み込み
            Sheet targetSheet = workbook.getSheet( sheetInfo.getSheetName());
            if ( targetSheet == null) {
                throw new ParseException( sheetInfo.getSheetNameCell(), "シート[" + sheetInfo.getSheetName() + "]は存在しません");
            }
            results.addAll( parseTargetSheet( targetSheet, sheetInfo, targetColumnInfoList));
        }

        // sheetDataに結果を格納
        sheetData.put( tag, results);
    }

    // 処理後に不要になるデータの削除
    for ( String removeTag : removeTags) {
        sheetData.remove( removeTag);
    }
}
 
開發者ID:excella-core,項目名稱:excella-trans,代碼行數:78,代碼來源:SheetToJavaExecuter.java

示例11: postParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
/**
 * 解析後処理<BR>
 * 設定情報に基づき、データをSql文字列に変換し、<BR>
 * 結果をリストに入れて、SheetDataにセットする。<BR>
 * 
 * @param sheet 対象シート
 * @param sheetParser 対象シートパーサ
 * @param sheetData 解析結果シートデータ
 */
@SuppressWarnings( "unchecked")
public void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException {

    // 結果オブジェクトのリスト
    List<Object> results = new ArrayList<Object>();

    // 対象シートにSheetToSqlParserが存在するか
    List<TagParser<?>> tagParsers = sheetParser.getTagParsers();

    // 処理後不要になるSheetToJavaSettingParserの
    // データを判別するタグのリスト
    List<String> removeTags = new ArrayList<String>();

    // 処理をするタグの一覧を作成
    List<String> targetTags = new ArrayList<String>();
    for ( TagParser<?> tagParser : tagParsers) {
        // SheetToSqlParserのタグ
        if ( tagParser instanceof SheetToSqlParser) {
            targetTags.add( tagParser.getTag());
        }
        // SheetToSqlSettingParserのタグ
        if ( tagParser instanceof SheetToSqlSettingParser) {
            removeTags.add( tagParser.getTag());
        }
    }

    // ワークブックの取得
    Workbook workbook = sheet.getWorkbook();

    // 処理対象のタグでループ
    for ( String tag : targetTags) {

        List<SheetToSqlParseInfo> sheetInfoList = ( List<SheetToSqlParseInfo>) sheetData.get( tag);

        if ( sheetInfoList == null) {
            continue;
        }

        // 設定情報(シート)単位でループ
        for ( SheetToSqlParseInfo sheetInfo : sheetInfoList) {

            List<SheetToSqlSettingInfo> allColumnInfoList = ( List<SheetToSqlSettingInfo>) sheetData.get( sheetInfo.getSettingTagName());

            // 今回処理対象シート分の設定を取得
            List<SheetToSqlSettingInfo> targetColumnInfoList = new ArrayList<SheetToSqlSettingInfo>();
            for ( SheetToSqlSettingInfo columnInfo : allColumnInfoList) {
                if ( columnInfo.getSheetName().equals( sheetInfo.getSheetName())) {
                    targetColumnInfoList.add( columnInfo);
                }
            }

            // 対象シートデータの読み込み
            Sheet targetSheet = workbook.getSheet( sheetInfo.getSheetName());
            if ( targetSheet == null) {
                throw new ParseException( "シート[" + sheetInfo.getSheetName() + "]は存在しません");
            }
            results.addAll( parseTargetSheet( targetSheet, sheetInfo, targetColumnInfoList));
        }

        // sheetDataに結果を格納
        sheetData.put( tag, results);
    }

    // 処理後に不要になるデータの削除
    for ( String removeTag : removeTags) {
        sheetData.remove( removeTag);
    }
}
 
開發者ID:excella-core,項目名稱:excella-trans,代碼行數:78,代碼來源:SheetToSqlExecuter.java

示例12: preParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
public void preParse( Sheet sheet, SheetParser sheetParser) throws ParseException {
    System.out.println( "TestSheetParseListener : preParse");
}
 
開發者ID:excella-core,項目名稱:excella-trans,代碼行數:4,代碼來源:TransProcessorTest.java

示例13: postParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
public void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException {
    System.out.println( "TestSheetParseListener : postParse");
}
 
開發者ID:excella-core,項目名稱:excella-trans,代碼行數:4,代碼來源:TransProcessorTest.java

示例14: preParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
/**
 * シート解析前に呼び出されるメソッド
 * 
 * @param sheet 対象シート
 * @param sheetParser 対象パーサ
 */
void preParse( Sheet sheet, SheetParser sheetParser) throws ParseException;
 
開發者ID:excella-core,項目名稱:excella-core,代碼行數:8,代碼來源:SheetParseListener.java

示例15: postParse

import org.bbreak.excella.core.SheetParser; //導入依賴的package包/類
/**
 * シート解析後に呼び出されるメソッド
 * 
 * @param sheet 対象シート
 * @param sheetParser 対象パーサ
 * @param sheetData 解析結果
 */
void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException;
 
開發者ID:excella-core,項目名稱:excella-core,代碼行數:9,代碼來源:SheetParseListener.java


注:本文中的org.bbreak.excella.core.SheetParser類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。