本文整理汇总了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);
}
}
}
}
}
示例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;
}
示例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);
}
示例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);
}
}
}
示例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--;
}
}
}
}
示例6: postParse
import org.bbreak.excella.core.SheetParser; //导入依赖的package包/类
public void postParse( Sheet sheet, SheetParser sheetParser, SheetData sheetData) throws ParseException {
}
示例7: preParse
import org.bbreak.excella.core.SheetParser; //导入依赖的package包/类
public void preParse( Sheet sheet, SheetParser sheetParser) throws ParseException {
}
示例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);
}
示例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);
}
示例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);
}
}
示例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);
}
}
示例12: preParse
import org.bbreak.excella.core.SheetParser; //导入依赖的package包/类
public void preParse( Sheet sheet, SheetParser sheetParser) throws ParseException {
System.out.println( "TestSheetParseListener : preParse");
}
示例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");
}
示例14: preParse
import org.bbreak.excella.core.SheetParser; //导入依赖的package包/类
/**
* シート解析前に呼び出されるメソッド
*
* @param sheet 対象シート
* @param sheetParser 対象パーサ
*/
void preParse( Sheet sheet, SheetParser sheetParser) throws ParseException;
示例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;