Package org.concordion.ext.excel.conversion.row

Source Code of org.concordion.ext.excel.conversion.row.BasicTableStrategy

package org.concordion.ext.excel.conversion.row;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFTable;
import org.concordion.ext.excel.conversion.AbstractConversionStrategy;
import org.concordion.ext.excel.conversion.ConversionStrategy;
import org.concordion.ext.excel.conversion.HTMLBuilder;

/**
* This strategy collects rows and outputs them as a table.
*
* @author robmoffat
*
*/
public class BasicTableStrategy extends AbstractConversionStrategy<XSSFTable> {

  protected ConversionStrategy<Cell> bodyCell;
  protected ConversionStrategy<Cell> headerCell = null;
 
  public BasicTableStrategy(ConversionStrategy<Cell> bodyCell) {
    super();
    this.bodyCell = bodyCell;
  }
 
  public BasicTableStrategy(ConversionStrategy<Cell> bodyCell, ConversionStrategy<Cell> headerCell) {
    this(bodyCell);
    this.headerCell = headerCell;
  }

  @Override
  public void process(XSSFTable table, HTMLBuilder result) {
    boolean header = shouldOutputFirstRowAsHeader(table);
    int columnFrom = table.getStartCellReference().getCol();
    int columnTo = table.getEndCellReference().getCol();
    int rowFrom = table.getStartCellReference().getRow();
    int rowTo = table.getEndCellReference().getRow();
    XSSFSheet sheet = table.getXSSFSheet();
       
    result.startTag("table");
    for (int rowNum = rowFrom; rowNum <= rowTo; rowNum++) {
      Row r = sheet.getRow(rowNum);
      result.startTag("tr");
      for (int i = columnFrom; i <= columnTo; i++) {
        if (header) {
          headerCell.process(r.getCell(i), result);
        } else {
          bodyCell.process(r.getCell(i), result);
        }
      }
     
      header = false;
      result.endTag();
    }
    result.endTag();
  }

  protected boolean shouldOutputFirstRowAsHeader(XSSFTable t) {
    return true;
  }

}
TOP

Related Classes of org.concordion.ext.excel.conversion.row.BasicTableStrategy

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.