List of usage examples for org.apache.poi.hssf.usermodel HSSFFormulaEvaluator HSSFFormulaEvaluator
public HSSFFormulaEvaluator(HSSFWorkbook workbook, IStabilityClassifier stabilityClassifier)
From source file:cdc.impl.datasource.office.ExcelDataSource.java
License:LGPL
private static DataColumnDefinition[] readDataModel(String sourceName, Map params) throws IOException, RJException { BufferedInputStream is = null; try {//from w ww . j av a2 s .com is = new BufferedInputStream(new FileInputStream((String) params.get(PARAM_FILE))); HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(is)); String[] sheets; if (params.get(PARAM_SHEET) != null) { sheets = new String[] { (String) params.get(PARAM_SHEET) }; } else { sheets = new String[wb.getNumberOfSheets()]; for (int i = 0; i < sheets.length; i++) { sheets[i] = wb.getSheetName(i); } } if (sheets.length == 0) { throw new RJException("Excel file " + params.get(PARAM_FILE) + " does not provide any sheets."); } List cols = new ArrayList(); HSSFSheet sheet = wb.getSheet(sheets[0]); if (sheet == null) { //System.out.println("Thorwing: " + "Sheet " + sheets[0] + " is not provided by file " + params.get(PARAM_FILE)); throw new RJException( "Sheet '" + sheets[0] + "' is not provided by file " + params.get(PARAM_FILE)); } HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet, wb); //first row should provide data model HSSFRow row = sheet.getRow(0); evaluator.setCurrentRow(row); for (int i = 0; i < row.getPhysicalNumberOfCells(); i++) { HSSFCell cell = row.getCell(i); cols.add(new ExcelDataColumnDefinition(decodeValue(cell, evaluator), DataColumnDefinition.TYPE_STRING, sourceName, i)); } for (int i = 1; i < sheets.length; i++) { sheet = wb.getSheet(sheets[i]); if (sheet == null) { throw new RJException("Sheet '" + params.get(PARAM_SHEET) + "' is not provided by file " + params.get(PARAM_FILE)); } evaluator = new HSSFFormulaEvaluator(sheet, wb); //first row should provide data model row = sheet.getRow(0); evaluator.setCurrentRow(row); List localCols = new ArrayList(); for (i = 0; i < row.getPhysicalNumberOfCells(); i++) { HSSFCell cell = row.getCell(i); DataColumnDefinition col = new ExcelDataColumnDefinition(decodeValue(cell, evaluator), DataColumnDefinition.TYPE_STRING, sourceName, i); localCols.add(col); } List toRemove = new ArrayList(); for (Iterator iterator = cols.iterator(); iterator.hasNext();) { DataColumnDefinition object = (DataColumnDefinition) iterator.next(); if (!localCols.contains(object)) { toRemove.add(object); } } cols.removeAll(toRemove); } return (DataColumnDefinition[]) cols.toArray(new DataColumnDefinition[] {}); } finally { if (is != null) { is.close(); } } }
From source file:cdc.impl.datasource.office.SheetsIterator.java
License:LGPL
public boolean hasNext() { while (sheet == null || !rowIterator.hasNext()) { if (sheetNumber == sheetNames.length) { return false; }//from w ww . j av a 2 s . c o m //time to move to next sheet while ((sheet = workbook.getSheet(sheetNames[sheetNumber++])) == null) { if (sheetNumber == sheetNames.length) { return false; } } evaluator = new HSSFFormulaEvaluator(sheet, workbook); rowIterator = sheet.rowIterator(); //skipping header rowIterator.next(); } return rowIterator.hasNext(); }
From source file:com.bayareasoftware.chartengine.ds.ExcelDataStream.java
License:Apache License
public ExcelDataStream(DataSourceInfo dsi, HSSFWorkbook wb, HSSFSheet sheet, Metadata md) { super(true);/* w ww .j a va 2 s .c o m*/ setMetadata(md); this.dsi = dsi; this.wb = wb; this.sheet = sheet; evaluator = new HSSFFormulaEvaluator(sheet, wb); dfmts = new DateFormat[metadata.getColumnCount()]; // FIXME: are we sure we want to do this? Might be heavy-handed... HSSFFormulaEvaluator.evaluateAllFormulaCells(wb); /* p("before first infer startrow=" + dsi.getDataStartRow() + " metadata=" + this.metadata); this.inferMetadata(-1); p("before 2nd infer startrow=" + dsi.getDataStartRow() + " metadata=" + this.metadata); this.inferMetadata(-1); if (true) throw new RuntimeException("BLAH"); */ //p("constructing stream with dsi=" + dsi); reset(); }
From source file:com.bayareasoftware.chartengine.ds.util.ExcelInference.java
License:Apache License
public List<String[]> getRawStrings(String sheetName) { // if (rawStrings == null) { rawStrings = new ArrayList<String[]>(); // }// w w w.j a va 2 s . c o m sheet = ExcelDataSource.getSheet(wbk, sheetName); eval = new HSSFFormulaEvaluator(sheet, wbk); // FIXME: decide if we want this... HSSFFormulaEvaluator.evaluateAllFormulaCells(wbk); loadStrings(); inferMetadata(); return rawStrings; }
From source file:com.helger.poi.excel.ExcelFormulaEvaluator.java
License:Apache License
public ExcelFormulaEvaluator(@Nonnull final Workbook aWB, @Nullable final IStabilityClassifier aStability) { m_aEvaluator = aWB instanceof HSSFWorkbook ? new HSSFFormulaEvaluator((HSSFWorkbook) aWB, aStability) : XSSFFormulaEvaluator.create((XSSFWorkbook) aWB, aStability, null); }
From source file:de.enerko.reports2.engine.Report.java
License:Apache License
public List<CellDefinition> evaluateWorkbook() { final List<CellDefinition> rv = new ArrayList<CellDefinition>(); boolean reevaluate = false; if (workbook instanceof HSSFWorkbook) { try {/* www .j a va2 s. c o m*/ workbook.getCreationHelper().createFormulaEvaluator().evaluateAll(); } catch (Exception e) { reevaluate = true; } } final FormulaEvaluator formulaEvaluator = new HSSFFormulaEvaluator((HSSFWorkbook) workbook, IStabilityClassifier.TOTALLY_IMMUTABLE); formulaEvaluator.clearAllCachedResultValues(); for (int i = 0; i < workbook.getNumberOfSheets(); ++i) { final Sheet sheet = workbook.getSheetAt(i); for (Row row : sheet) { for (Cell cell : row) { if (reevaluate && cell.getCellType() == Cell.CELL_TYPE_FORMULA) { try { formulaEvaluator.evaluateFormulaCell(cell); } catch (Exception e) { ReportEngine.logger.log(Level.WARNING, String.format("Could not evaluate formula '%s' in cell %s on sheet '%s': %s", cell.getCellFormula(), CellReferenceHelper .getCellReference(cell.getColumnIndex(), row.getRowNum()), sheet.getSheetName(), e.getMessage())); } } final CellDefinition cellDefinition = IMPORTABLE_CELL_TYPES.containsKey( new Integer(cell.getCellType())) ? new CellDefinition(sheet.getSheetName(), cell) : null; if (cellDefinition != null) rv.add(cellDefinition); } } } return rv; }
From source file:test.ExcelUtil.java
License:Apache License
/** * excel/*from www . j av a2 s .c o m*/ * @param sheet * @param workbook * @param row * @return */ public static HSSFFormulaEvaluator getFormulaEvaluator(HSSFSheet sheet, HSSFWorkbook workbook, HSSFRow row) { HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet, workbook); evaluator.setCurrentRow(row); return evaluator; }