Example usage for org.apache.poi.hssf.eventusermodel MissingRecordAwareHSSFListener MissingRecordAwareHSSFListener

List of usage examples for org.apache.poi.hssf.eventusermodel MissingRecordAwareHSSFListener MissingRecordAwareHSSFListener

Introduction

In this page you can find the example usage for org.apache.poi.hssf.eventusermodel MissingRecordAwareHSSFListener MissingRecordAwareHSSFListener.

Prototype

public MissingRecordAwareHSSFListener(HSSFListener listener) 

Source Link

Document

Constructs a new MissingRecordAwareHSSFListener, which will fire processRecord on the supplied child HSSFListener for all Records, and missing records.

Usage

From source file:XLS2CSVmra.java

License:Apache License

/**
 * Initiates the processing of the XLS file to CSV
 *//*from  w  ww  .  j av  a  2 s.  c o m*/
public void process() throws IOException {
    MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(this);
    HSSFEventFactory factory = new HSSFEventFactory();
    HSSFRequest request = new HSSFRequest();
    request.addListenerForAllRecords(listener);

    factory.processWorkbookEvents(request, fs);
}

From source file:XLS2CSV.java

License:Apache License

/**
 * Initiates the processing of the XLS file to CSV
 *///from  w  w  w.  ja va 2 s.c o  m
public void process() throws IOException {
    MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(this);
    formatListener = new FormatTrackingHSSFListener(listener);

    HSSFEventFactory factory = new HSSFEventFactory();
    HSSFRequest request = new HSSFRequest();

    if (outputFormulaValues) {
        request.addListenerForAllRecords(formatListener);
    } else {
        workbookBuildingListener = new SheetRecordCollectingListener(formatListener);
        request.addListenerForAllRecords(workbookBuildingListener);
    }

    factory.processWorkbookEvents(request, fs);
    close();
}

From source file:cn.sinobest.jzpt.minidemo.poidemo.example.XLS2CSVmra.java

License:Apache License

/**
 * Initiates the processing of the XLS file to CSV
 *//*from ww  w . j a  v  a 2s .c om*/
public void process() throws IOException {
    MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(this);
    formatListener = new FormatTrackingHSSFListener(listener);

    HSSFEventFactory factory = new HSSFEventFactory();
    HSSFRequest request = new HSSFRequest();

    if (outputFormulaValues) {
        request.addListenerForAllRecords(formatListener);
    } else {
        workbookBuildingListener = new SheetRecordCollectingListener(formatListener);
        request.addListenerForAllRecords(workbookBuildingListener);
    }

    factory.processWorkbookEvents(request, fs);
}

From source file:com.bayareasoftware.chartengine.ds.util.XLS2Data.java

License:Apache License

public void process() throws IOException {
    MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(this);
    formatListener = new FormatTrackingHSSFListener(listener);

    HSSFEventFactory factory = new HSSFEventFactory();
    HSSFRequest request = new HSSFRequest();

    if (outputFormulaValues) {
        request.addListenerForAllRecords(formatListener);
    } else {// w w  w  . java 2  s  .c o  m
        workbookBuildingListener = new SheetRecordCollectingListener(formatListener);
        request.addListenerForAllRecords(workbookBuildingListener);
    }
    try {
        // we can handle this when we only want to read a particular sheet
        // and use this exception when we've moved beyond that sheet
        factory.abortableProcessWorkbookEvents(request, fs);
    } catch (HSSFUserException hssue) {
        hssue.printStackTrace();
    } catch (MaxRowsReachedException re) {
        System.out.println("aborted? " + re);
    }
    // make sure we got the last sheet
    if (currentSheetName != null && sheet2data.get(currentSheetName) == null) {
        sheet2data.put(currentSheetName, currentData);
    }
    //factory.processWorkbookEvents(request, fs);        
}

From source file:com.googlecode.sqlsheet.stream.XlsSheetIterator.java

License:Apache License

/**
 * Initiates the processing//from   w  w w  .j a  v  a 2s .  c o m
 * - position stream to the right sheet
 * - extracts columns
 * - extracts first row
 */
public void postConstruct() throws SQLException {
    try {
        boundSheetRecords = new ArrayList();
        sheetIndex = -1;
        inRequiredSheet = false;
        outputFormulaValues = true;

        fileSystem = new NPOIFSFileSystem(getFileName().openStream());
        recordStream = new RecordFactoryInputStream(fileSystem.getRoot().createDocumentInputStream("Workbook"),
                false);
        MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(this);
        formatListener = new FormatTrackingHSSFListener(listener);
        requestPublic = new PublicMorozoffHSSFRequest();
        if (outputFormulaValues) {
            requestPublic.addListenerForAllRecords(formatListener);
        } else {
            workbookBuildingListener = new EventWorkbookBuilder.SheetRecordCollectingListener(formatListener);
            requestPublic.addListenerForAllRecords(workbookBuildingListener);
        }

        // Process each record as they come in till we get to the right sheet
        while (!inRequiredSheet) {
            Record r = recordStream.nextRecord();
            if (r == null) {
                break;
            }
            try {
                short userCode = requestPublic.processRecord(r);
                if (userCode != 0) {
                    break;
                }

            } catch (HSSFUserException e) {
                throw new RuntimeException(e.getMessage(), e);
            }
        }
        //Flush rows counter
        setCurrentSheetRowIndex(0L);
        //Fill current row
        processNextRecords();
    } catch (IOException e) {
        throw new SQLException(e.getMessage(), e);
    }

}

From source file:com.sonicle.webtop.core.io.input.XlsBaseProcessor.java

License:Open Source License

public XlsBaseProcessor(InputStream is) {
    this.is = is;
    hssfListener = new MissingRecordAwareHSSFListener(this);
    formatTrackingListener = new FormatTrackingHSSFListener(hssfListener);
}

From source file:com.toolsverse.etl.connector.excel.ExcelConnector.java

License:Open Source License

public ConnectorResult populate(ExcelConnectorParams params, DataSet dataSet, Driver driver) throws Exception {
    if (dataSet == null || params == null || Utils.isNothing(dataSet.getName())
            || (driver == null && dataSet.getDriver() == null)) {
        ConnectorResult result = new ConnectorResult();
        result.setRetCode(ConnectorResult.VALIDATION_FAILED_CODE);

        if (dataSet == null)
            result.addResult(ConnectorResource.VALIDATION_ERROR_DATA_SET_NULL.getValue());
        if (driver == null && dataSet.getDriver() == null)
            result.addResult(ConnectorResource.VALIDATION_ERROR_DRIVER_NULL.getValue());
        if (params == null)
            result.addResult(ConnectorResource.VALIDATION_ERROR_PARAMS_NULL.getValue());
        if (dataSet != null && Utils.isNothing(dataSet.getName()))
            result.addResult(ConnectorResource.VALIDATION_ERROR_DATA_SET_NO_NAME.getValue());

        return result;

    }//  w ww .  ja v  a 2  s .c  o m

    dataSet.clear();

    driver = driver != null ? driver : dataSet.getDriver();

    if (!params.isSilent())
        Logger.log(Logger.INFO, EtlLogger.class,
                EtlResource.LOADING_DATASET_MSG.getValue() + dataSet.getName() + "...");

    FileInputStream fin = null;
    POIFSFileSystem poifs = null;

    try {
        String fileName = null;

        if (params.getInputStream() == null) {
            fileName = SystemConfig.instance().getPathUsingAppFolders(params.getFileName(
                    dataSet.getOwnerName() != null ? dataSet.getOwnerName() : dataSet.getName(), ".xls", true));

            fin = new FileInputStream(fileName);

            poifs = new POIFSFileSystem(fin);
        } else
            poifs = new POIFSFileSystem(params.getInputStream());

        XlsProcessor xlsProcessor = new XlsProcessor(params, dataSet, driver);

        MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(xlsProcessor);
        FormatTrackingHSSFListener formatListener = new FormatTrackingHSSFListener(listener);

        xlsProcessor.setFormatListener(formatListener);

        HSSFRequest request = new HSSFRequest();
        request.addListenerForAllRecords(formatListener);

        HSSFEventFactory factory = new HSSFEventFactory();

        try {
            factory.processWorkbookEvents(request, poifs);
        } catch (Exception ex) {
            if (!params.isMaxRowsExceededException(ex) && !params.isSheetAlreadyExatractedException(ex))
                throw ex;
        }

        if (dataSet.getFieldCount() > 0 && dataSet.getRecordCount() == 0
                && params.getAddRecordCallback() != null) {
            params.getAddRecordCallback().onAddRecord(dataSet, driver, null, 0);
        }

        ConnectorResult connectorResult = new ConnectorResult();

        connectorResult.addResult(Utils.format(FileConnectorResource.FILE_POPULATED.getValue(),
                new String[] { FilenameUtils.getName(fileName) }));

        return connectorResult;

    } finally {
        if (fin != null)
            fin.close();

        if (params.getInputStream() != null && params.isCloseInput())
            params.getInputStream().close();

        if (params.getAfterCallback() != null)
            params.getAfterCallback().onAfter(dataSet, driver);
    }
}

From source file:com.vaadin.addon.tableexport.XLS2CSVmra.java

License:Apache License

/**
 * Initiates the processing of the XLS file to CSV
 *//*from  ww  w .j  ava 2 s .c o  m*/
public void process() throws IOException {
    final MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(this);
    formatListener = new FormatTrackingHSSFListener(listener);

    final HSSFEventFactory factory = new HSSFEventFactory();
    final HSSFRequest request = new HSSFRequest();

    if (outputFormulaValues) {
        request.addListenerForAllRecords(formatListener);
    } else {
        workbookBuildingListener = new SheetRecordCollectingListener(formatListener);
        request.addListenerForAllRecords(workbookBuildingListener);
    }

    factory.processWorkbookEvents(request, fs);
}

From source file:org.datagator.tools.importer.impl.XlsxInputStreamExtractor.java

License:Apache License

public XlsxInputStreamExtractor(InputStream stream) throws IOException {
    super(stream);
    _queue = new ArrayBlockingQueue<ImmutablePair<AtomType, Object>>(MAX_QUEUE_CAPACITY);
    final HSSFRequest request = new HSSFRequest();
    request.addListenerForAllRecords(new MissingRecordAwareHSSFListener(new EventTransformer(_queue)));
    final HSSFEventFactory factory = new HSSFEventFactory();
    factory.processEvents(request, stream);
}

From source file:org.jberet.support.io.ExcelEventItemReader.java

License:Open Source License

@Override
protected void initWorkbookAndSheet(final int startRowNumber) throws Exception {
    queue = new ArrayBlockingQueue<Object>(queueCapacity == 0 ? MAX_WORKSHEET_ROWS : queueCapacity);
    final POIFSFileSystem poifs = new POIFSFileSystem(inputStream);
    // get the Workbook (excel part) stream in a InputStream
    documentInputStream = poifs.createDocumentInputStream("Workbook");
    final HSSFRequest req = new HSSFRequest();
    final MissingRecordAwareHSSFListener missingRecordAwareHSSFListener = new MissingRecordAwareHSSFListener(
            new HSSFListenerImpl(this));
    /*// ww w.  j  a  v a2  s  .c  o m
     * Need to use English locale her because Jackson double parsing might break in certain regions
     * where ',' is used as decimal separator instead of '.'.
     */
    formatListener = new FormatTrackingHSSFListener(missingRecordAwareHSSFListener, Locale.ENGLISH);
    req.addListenerForAllRecords(formatListener);
    final HSSFEventFactory factory = new HSSFEventFactory();

    if (objectMapper == null) {
        initJsonFactoryAndObjectMapper();
    }

    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                factory.processEvents(req, documentInputStream);
            } catch (final ReadCompletedException e) {
                SupportLogger.LOGGER.tracef("Completed reading %s%n", resource);
            }
        }
    }).start();
}