📄 outlinetag.java
字号:
package net.sf.jxls.tag;
import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformation.ResultTransformation;
import net.sf.jxls.transformer.SheetTransformer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFSheet;
/**
* @author Leonid Vysochyn
*/
public class OutlineTag extends BaseTag{
protected final Log log = LogFactory.getLog(getClass());
public static final String TAG_NAME = "outline";
public OutlineTag() {
name = TAG_NAME;
}
private boolean detail;
public boolean isDetail() {
return detail;
}
public void setDetail(boolean detail) {
this.detail = detail;
}
public ResultTransformation process(SheetTransformer sheetTransformer) {
if( log.isDebugEnabled() ){
log.info("jx:outline tag processing..");
}
Block body = tagContext.getTagBody();
if( body.getNumberOfRows()==1 ){
log.warn("jx:outline for columns is not supported. Ignoring.");
}
int shiftNumber = 0;
ResultTransformation shift = new ResultTransformation(0);
tagContext.getSheetTransformationController().removeBorders(body);
shiftNumber += -2;
try {
ResultTransformation processResult = sheetTransformer.processRows(tagContext.getSheetTransformationController(), tagContext.getSheet(), body.getStartRowNum(), body.getEndRowNum(), tagContext.getBeans(), null );
if( body.getStartRowNum() <= body.getEndRowNum() + processResult.getLastRowShift() ){
groupRows( body.getStartRowNum(), body.getEndRowNum() + processResult.getLastRowShift() );
}
shift.add( processResult );
} catch (ParsePropertyException e) {
log.error("Can't parse property ", e);
}
return shift.add( new ResultTransformation(0, shiftNumber) );
}
private void groupRows(int startRowNum, int endRowNum) {
HSSFSheet hssfSheet = tagContext.getSheet().getHssfSheet();
hssfSheet.groupRow( startRowNum, endRowNum );
hssfSheet.setRowGroupCollapsed( startRowNum, !detail);
}
private ResultTransformation processOneRowTag(SheetTransformer sheetTransformer) {
return new ResultTransformation();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -