Example usage for org.apache.poi.hssf.record NumberRecord getValue

List of usage examples for org.apache.poi.hssf.record NumberRecord getValue

Introduction

In this page you can find the example usage for org.apache.poi.hssf.record NumberRecord getValue.

Prototype

public double getValue() 

Source Link

Document

get the value for the cell

Usage

From source file:XLS2CSVmra.java

License:Apache License

/**
 * Main HSSFListener method, processes events, and outputs the
 *  CSV as the file is processed./*from w  ww  .  j a  va2  s . c  o m*/
 */
public void processRecord(Record record) {
    int thisRow = -1;
    int thisColumn = -1;
    String thisStr = null;

    switch (record.getSid()) {
    case SSTRecord.sid:
        sstRecord = (SSTRecord) record;
        break;
    case FormatRecord.sid:
        FormatRecord fr = (FormatRecord) record;
        customFormatRecords.put(new Integer(fr.getIndexCode()), fr);
        break;
    case ExtendedFormatRecord.sid:
        ExtendedFormatRecord xr = (ExtendedFormatRecord) record;
        xfRecords.add(xr);
        break;

    case BlankRecord.sid:
        BlankRecord brec = (BlankRecord) record;

        thisRow = brec.getRow();
        thisColumn = brec.getColumn();
        thisStr = "";
        break;
    case BoolErrRecord.sid:
        BoolErrRecord berec = (BoolErrRecord) record;

        thisRow = berec.getRow();
        thisColumn = berec.getColumn();
        thisStr = "";
        break;
    case FormulaRecord.sid:
        FormulaRecord frec = (FormulaRecord) record;

        thisRow = frec.getRow();
        thisColumn = frec.getColumn();

        if (outputFormulaValues) {
            thisStr = '"' + formatNumberDateCell(frec, frec.getValue()) + '"';
        } else {
            // TODO: Output the formula string
            thisStr = '"' + frec.toString().replaceAll("\"", "\"\"") + '"';
        }
        break;
    case LabelRecord.sid:
        LabelRecord lrec = (LabelRecord) record;

        thisRow = lrec.getRow();
        thisColumn = lrec.getColumn();
        thisStr = '"' + lrec.getValue().replaceAll("\"", "\"\"") + '"';
        break;
    case LabelSSTRecord.sid:
        LabelSSTRecord lsrec = (LabelSSTRecord) record;

        thisRow = lsrec.getRow();
        thisColumn = lsrec.getColumn();
        if (sstRecord == null) {
            thisStr = '"' + "(No SST Record, can't identify string)" + '"';
        } else {
            thisStr = '"' + sstRecord.getString(lsrec.getSSTIndex()).toString().replaceAll("\"", "\"\"") + '"';
        }
        break;
    case NoteRecord.sid:
        NoteRecord nrec = (NoteRecord) record;

        thisRow = nrec.getRow();
        thisColumn = nrec.getColumn();
        // TODO: Find object to match nrec.getShapeId()
        thisStr = '"' + "(TODO)" + '"';
        break;
    case NumberRecord.sid:
        NumberRecord numrec = (NumberRecord) record;

        thisRow = numrec.getRow();
        thisColumn = numrec.getColumn();

        // Format
        thisStr = '"' + formatNumberDateCell(numrec, numrec.getValue()) + '"';
        break;
    case RKRecord.sid:
        RKRecord rkrec = (RKRecord) record;

        thisRow = rkrec.getRow();
        thisColumn = rkrec.getColumn();
        thisStr = '"' + "(TODO)" + '"';
        break;
    default:
        break;
    }

    // Handle new row
    if (thisRow != -1 && thisRow != lastRowNumber) {
        lastColumnNumber = -1;
    }

    // Handle missing column
    if (record instanceof MissingCellDummyRecord) {
        MissingCellDummyRecord mc = (MissingCellDummyRecord) record;
        thisRow = mc.getRow();
        thisColumn = mc.getColumn();
        thisStr = "";
    }

    // If we got something to print out, do so
    if (thisStr != null) {
        if (thisColumn > 0) {
            output.print(',');
        }
        output.print(thisStr);
    }

    // Update column and row count
    if (thisRow > -1)
        lastRowNumber = thisRow;
    if (thisColumn > -1)
        lastColumnNumber = thisColumn;

    //set the minColumns based on the first row (headers)
    if (thisRow == 0)
        minColumns = thisColumn;

    // Handle end of row
    if (record instanceof LastCellOfRowDummyRecord) {
        // Print out any missing commas if needed
        if (minColumns > 0) {
            // Columns are 0 based
            if (lastColumnNumber == -1) {
                lastColumnNumber = 0;
            }
            for (int i = lastColumnNumber; i < (minColumns); i++) {
                output.print(",\"\"");
            }
        }

        // We're onto a new row
        lastColumnNumber = -1;

        // End the row
        output.println();
    }
}

From source file:ambit.test.io.POIExample.java

License:Open Source License

public void processRecord(Record record) {
    switch (record.getSid()) {
    // the BOFRecord can represent either the beginning of a sheet or the workbook
    case BOFRecord.sid:
        BOFRecord bof = (BOFRecord) record;
        if (bof.getType() == bof.TYPE_WORKBOOK) {
            System.out.println("Encountered workbook");
            // assigned to the class level member
        } else if (bof.getType() == bof.TYPE_WORKSHEET) {
            System.out.println("Encountered sheet reference");
        }/*w  ww.  j  a  v  a 2 s.c o  m*/
        break;
    case BoundSheetRecord.sid:
        BoundSheetRecord bsr = (BoundSheetRecord) record;
        System.out.println("New sheet named: " + bsr.getSheetname());
        break;
    case RowRecord.sid:
        RowRecord rowrec = (RowRecord) record;
        System.out.println("Row found, first column at " + rowrec.getFirstCol() + " last column at "
                + rowrec.getLastCol());
        break;
    case NumberRecord.sid:
        NumberRecord numrec = (NumberRecord) record;
        System.out.println("Cell found with value " + numrec.getValue() + " at row " + numrec.getRow()
                + " and column " + numrec.getColumn());
        break;
    // SSTRecords store a array of unique strings used in Excel.
    case SSTRecord.sid:
        sstrec = (SSTRecord) record;
        for (int k = 0; k < sstrec.getNumUniqueStrings(); k++) {
            System.out.println("String table value " + k + " = " + sstrec.getString(k));
        }
        break;
    case LabelSSTRecord.sid:
        LabelSSTRecord lrec = (LabelSSTRecord) record;
        System.out.println("String cell found with value " + sstrec.getString(lrec.getSSTIndex()));
        break;
    }
}

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

License:Apache License

/**
 * Main HSSFListener method, processes events, and outputs the
 *  CSV as the file is processed.//w  w  w .  jav  a 2  s . c om
 */
public void processRecord(Record record) {
    int thisRow = -1;
    int thisColumn = -1;
    String thisStr = null;

    switch (record.getSid()) {
    case BoundSheetRecord.sid:
        boundSheetRecords.add(record);
        break;
    case BOFRecord.sid:
        BOFRecord br = (BOFRecord) record;
        if (br.getType() == BOFRecord.TYPE_WORKSHEET) {
            // Create sub workbook if required
            if (workbookBuildingListener != null && stubWorkbook == null) {
                stubWorkbook = workbookBuildingListener.getStubHSSFWorkbook();
            }

            // Output the worksheet name
            // Works by ordering the BSRs by the location of
            //  their BOFRecords, and then knowing that we
            //  process BOFRecords in byte offset order
            sheetIndex++;
            if (orderedBSRs == null) {
                orderedBSRs = BoundSheetRecord.orderByBofPosition(boundSheetRecords);
            }
            output.println();
            output.println(orderedBSRs[sheetIndex].getSheetname() + " [" + (sheetIndex + 1) + "]:");
        }
        break;

    case SSTRecord.sid:
        sstRecord = (SSTRecord) record;
        break;

    case BlankRecord.sid:
        BlankRecord brec = (BlankRecord) record;

        thisRow = brec.getRow();
        thisColumn = brec.getColumn();
        thisStr = "";
        break;
    case BoolErrRecord.sid:
        BoolErrRecord berec = (BoolErrRecord) record;

        thisRow = berec.getRow();
        thisColumn = berec.getColumn();
        thisStr = "";
        break;

    case FormulaRecord.sid:
        FormulaRecord frec = (FormulaRecord) record;

        thisRow = frec.getRow();
        thisColumn = frec.getColumn();

        if (outputFormulaValues) {
            if (Double.isNaN(frec.getValue())) {
                // Formula result is a string
                // This is stored in the next record
                outputNextStringRecord = true;
                nextRow = frec.getRow();
                nextColumn = frec.getColumn();
            } else {
                thisStr = formatListener.formatNumberDateCell(frec);
            }
        } else {
            thisStr = '"' + HSSFFormulaParser.toFormulaString(stubWorkbook, frec.getParsedExpression()) + '"';
        }
        break;
    case StringRecord.sid:
        if (outputNextStringRecord) {
            // String for formula
            StringRecord srec = (StringRecord) record;
            thisStr = srec.getString();
            thisRow = nextRow;
            thisColumn = nextColumn;
            outputNextStringRecord = false;
        }
        break;

    case LabelRecord.sid:
        LabelRecord lrec = (LabelRecord) record;

        thisRow = lrec.getRow();
        thisColumn = lrec.getColumn();
        thisStr = '"' + lrec.getValue() + '"';
        break;
    case LabelSSTRecord.sid:
        LabelSSTRecord lsrec = (LabelSSTRecord) record;

        thisRow = lsrec.getRow();
        thisColumn = lsrec.getColumn();
        if (sstRecord == null) {
            thisStr = '"' + "(No SST Record, can't identify string)" + '"';
        } else {
            thisStr = '"' + sstRecord.getString(lsrec.getSSTIndex()).toString() + '"';
        }
        break;
    case NoteRecord.sid:
        NoteRecord nrec = (NoteRecord) record;

        thisRow = nrec.getRow();
        thisColumn = nrec.getColumn();
        // TODO: Find object to match nrec.getShapeId()
        thisStr = '"' + "(TODO)" + '"';
        break;
    case NumberRecord.sid:
        NumberRecord numrec = (NumberRecord) record;
        System.out.println(numrec.getSid());

        thisRow = numrec.getRow();
        thisColumn = numrec.getColumn();

        // Format
        thisStr = formatListener.formatNumberDateCell(numrec);
        //            if(HSSFDateUtil.isValidExcelDate(numrec.getValue())){
        System.out.println(HSSFDateUtil.isValidExcelDate(numrec.getValue()));

        //            }
        //            System.out.println("formatListener--------"+formatListener.getFormatString(1));
        //            System.out.println("thisStr----------"+thisStr);
        break;
    case RKRecord.sid:
        RKRecord rkrec = (RKRecord) record;

        thisRow = rkrec.getRow();
        thisColumn = rkrec.getColumn();
        thisStr = '"' + "(TODO)" + '"';
        break;
    default:
        break;
    }

    // Handle new row
    if (thisRow != -1 && thisRow != lastRowNumber) {
        lastColumnNumber = -1;
    }

    // Handle missing column
    if (record instanceof MissingCellDummyRecord) {
        MissingCellDummyRecord mc = (MissingCellDummyRecord) record;
        thisRow = mc.getRow();
        thisColumn = mc.getColumn();
        thisStr = "";
    }

    // If we got something to print out, do so
    if (thisStr != null) {
        if (thisColumn > 0) {
            output.print(',');
        }
        output.print(thisStr);
    }

    // Update column and row count
    if (thisRow > -1)
        lastRowNumber = thisRow;
    if (thisColumn > -1)
        lastColumnNumber = thisColumn;

    // Handle end of row
    if (record instanceof LastCellOfRowDummyRecord) {
        // Print out any missing commas if needed
        if (minColumns > 0) {
            // Columns are 0 based
            if (lastColumnNumber == -1) {
                lastColumnNumber = 0;
            }
            for (int i = lastColumnNumber; i < (minColumns); i++) {
                output.print(',');
            }
        }

        // We're onto a new row
        lastColumnNumber = -1;

        // End the row
        output.println();
    }
}

From source file:com.daphne.es.showcase.excel.service.Excel2003ImportListener.java

License:Apache License

@Override
public void processRecord(final Record record) {
    switch (record.getSid()) {
    case BOFRecord.sid:
        //?workboot sheet 
        BOFRecord bof = (BOFRecord) record;
        if (bof.getType() == bof.TYPE_WORKBOOK) {
            //workbook
        } else if (bof.getType() == bof.TYPE_WORKSHEET) {
            //sheet
        }//from w  w  w .  j  a  va2s.c  o  m
        break;
    case BoundSheetRecord.sid:
        //?BundleSheet
        BoundSheetRecord bsr = (BoundSheetRecord) record;
        //bsr.getSheetname() sheet name
        break;
    case RowRecord.sid:
        //?
        RowRecord rowrec = (RowRecord) record;
        break;
    case SSTRecord.sid:
        // SSTRecordsExcelString
        sstrec = (SSTRecord) record;
        break;
    case NumberRecord.sid:
    case LabelSSTRecord.sid:
        if (record instanceof NumberRecord) {
            //?Number?
            NumberRecord numrec = (NumberRecord) record;
            //numrec.getRow()  numrec.getColumn()   numrec.getValue()

            if (numrec.getRow() == 0) {
                // 
                break;
            } else if (numrec.getColumn() == 0) { //
                current = new ExcelData();
                current.setId(Double.valueOf(numrec.getValue()).longValue());
            } else if (numrec.getColumn() == 1) {//
                current.setContent(String.valueOf(Double.valueOf(numrec.getValue()).longValue()));
                add(current);
            }
            break;

        } else if (record instanceof LabelSSTRecord) {
            //?String?SSTRecord
            LabelSSTRecord lrec = (LabelSSTRecord) record;

            if (lrec.getRow() == 0) {
                // 
                break;
            } else if (lrec.getColumn() == 0) { //
                current = new ExcelData();
                String value = sstrec.getString(lrec.getSSTIndex()).getString();
                current.setId(Double.valueOf(value).longValue());
            } else if (lrec.getColumn() == 1) {//
                String value = sstrec.getString(lrec.getSSTIndex()).getString();
                current.setContent(value);
                add(current);
            }
            break;
        }
        break;
    }

}

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

License:Apache License

/**
 * Main HSSFListener method, processes events
 *///from   w w w . j a v a 2s .  c  o m
public void processRecord(Record record) {
    int thisRow = -1;
    int thisColumn = -1;
    CellValueHolder thisCellValue = new CellValueHolder();

    switch (record.getSid()) {
    case BoundSheetRecord.sid:
        boundSheetRecords.add(record);
        break;
    case BOFRecord.sid:
        BOFRecord br = (BOFRecord) record;
        if (br.getType() == BOFRecord.TYPE_WORKSHEET) {
            // Create sub workbook if required
            if (workbookBuildingListener != null && stubWorkbook == null) {
                stubWorkbook = workbookBuildingListener.getStubHSSFWorkbook();
            }
            // Output the worksheet name
            // Works by ordering the BSRs by the location of
            //  their BOFRecords, and then knowing that we
            //  postConstruct BOFRecords in byte offset order
            sheetIndex++;
            if (orderedBSRs == null) {
                orderedBSRs = BoundSheetRecord.orderByBofPosition(boundSheetRecords);
            }
            inRequiredSheet = getSheetName().equalsIgnoreCase(orderedBSRs[sheetIndex].getSheetname())
                    || ("\"" + orderedBSRs[sheetIndex].getSheetname() + "\"").equalsIgnoreCase(getSheetName());
        }
        break;

    case SSTRecord.sid:
        sstRecord = (SSTRecord) record;
        break;

    case BlankRecord.sid:
        BlankRecord brec = (BlankRecord) record;

        thisRow = brec.getRow();
        thisColumn = brec.getColumn();
        thisCellValue.stringValue = "";
        break;
    case BoolErrRecord.sid:
        BoolErrRecord berec = (BoolErrRecord) record;
        thisRow = berec.getRow();
        thisColumn = berec.getColumn();
        thisCellValue.stringValue = "";
        break;
    case FormulaRecord.sid:
        FormulaRecord frec = (FormulaRecord) record;
        thisRow = frec.getRow();
        thisColumn = frec.getColumn();
        if (outputFormulaValues) {
            if (Double.isNaN(frec.getValue())) {
                // Formula result is a string
                // This is stored in the next record
                outputNextStringRecord = true;
                nextRow = frec.getRow();
                nextColumn = frec.getColumn();
            } else {
                thisCellValue.stringValue = formatListener.formatNumberDateCell(frec);
                thisCellValue.doubleValue = frec.getValue();
                thisCellValue.dateValue = convertDateValue(frec.getValue(), formatListener.getFormatIndex(frec),
                        formatListener.getFormatString(frec));
            }
        } else {
            thisCellValue.stringValue = HSSFFormulaParser.toFormulaString(stubWorkbook,
                    frec.getParsedExpression());
            thisCellValue.doubleValue = frec.getValue();
            thisCellValue.dateValue = convertDateValue(frec.getValue(), formatListener.getFormatIndex(frec),
                    formatListener.getFormatString(frec));
        }
        break;
    case StringRecord.sid:
        if (outputNextStringRecord) {
            // String for formula
            StringRecord srec = (StringRecord) record;
            thisCellValue.stringValue = srec.getString();
            thisRow = nextRow;
            thisColumn = nextColumn;
            outputNextStringRecord = false;
        }
        break;

    case LabelRecord.sid:
        LabelRecord lrec = (LabelRecord) record;
        thisRow = lrec.getRow();
        thisColumn = lrec.getColumn();
        thisCellValue.stringValue = lrec.getValue();
        break;
    case LabelSSTRecord.sid:
        LabelSSTRecord lsrec = (LabelSSTRecord) record;
        thisRow = lsrec.getRow();
        thisColumn = lsrec.getColumn();
        if (sstRecord == null) {
            thisCellValue.stringValue = '"' + "(No SST Record, can't identify string)" + '"';
        } else {
            thisCellValue.stringValue = sstRecord.getString(lsrec.getSSTIndex()).toString();
        }
        break;
    case NoteRecord.sid:
        NoteRecord nrec = (NoteRecord) record;
        thisRow = nrec.getRow();
        thisColumn = nrec.getColumn();
        // TODO: Find object to match nrec.getShapeId()
        thisCellValue.stringValue = '"' + "(TODO)" + '"';
        break;
    case NumberRecord.sid:
        NumberRecord numrec = (NumberRecord) record;
        thisRow = numrec.getRow();
        thisColumn = numrec.getColumn();
        // Format
        thisCellValue.stringValue = formatListener.formatNumberDateCell(numrec);
        thisCellValue.doubleValue = numrec.getValue();
        thisCellValue.dateValue = convertDateValue(numrec.getValue(), formatListener.getFormatIndex(numrec),
                formatListener.getFormatString(numrec));
        break;
    case RKRecord.sid:
        RKRecord rkrec = (RKRecord) record;
        thisRow = rkrec.getRow();
        thisColumn = rkrec.getColumn();
        thisCellValue.stringValue = '"' + "(TODO)" + '"';
        break;
    default:
        break;
    }
    // Handle new row
    if (thisRow != -1 && thisRow != lastRowNumber) {
        lastColumnNumber = -1;
    }
    // Handle missing column
    if (record instanceof MissingCellDummyRecord) {
        MissingCellDummyRecord mc = (MissingCellDummyRecord) record;
        thisRow = mc.getRow();
        thisColumn = mc.getColumn();
        thisCellValue.stringValue = "";
    }
    // If we got something to print out, do so
    if (thisCellValue.stringValue != null) {
        //If we are on the first row - fill column names
        if (getCurrentSheetRowIndex().equals(0L) && inRequiredSheet) {
            getColumns().add(thisCellValue);
        } else if (inRequiredSheet) {
            addCurrentRowValue(thisCellValue);
        }
    }
    // Update column and row count
    if (thisRow > -1)
        lastRowNumber = thisRow;
    if (thisColumn > -1)
        lastColumnNumber = thisColumn;
    // Handle end of row
    if (record instanceof LastCellOfRowDummyRecord) {
        // We're onto a new row
        lastColumnNumber = -1;
        // End the row
        setCurrentSheetRowIndex(getCurrentSheetRowIndex() + 1);
    }
}

From source file:com.luna.showcase.excel.service.Excel2003ImportListener.java

License:Apache License

@Override
public void processRecord(final Record record) {
    switch (record.getSid()) {
    case BOFRecord.sid:
        //?workboot sheet 
        BOFRecord bof = (BOFRecord) record;
        if (bof.getType() == bof.TYPE_WORKBOOK) {
            //workbook
        } else if (bof.getType() == bof.TYPE_WORKSHEET) {
            //sheet
        }// ww w. j a va 2s  . co  m
        break;
    case BoundSheetRecord.sid:
        //?BundleSheet
        BoundSheetRecord bsr = (BoundSheetRecord) record;
        //bsr.getSheetname() sheet name
        break;
    case RowRecord.sid:
        //?
        RowRecord rowrec = (RowRecord) record;
        break;
    case SSTRecord.sid:
        // SSTRecordsExcelString
        sstrec = (SSTRecord) record;
        break;
    case NumberRecord.sid:
    case LabelSSTRecord.sid:
        if (record instanceof NumberRecord) {
            //?Number?
            NumberRecord numrec = (NumberRecord) record;
            //numrec.getRow()  numrec.getColumn()   numrec.getValue()

            if (numrec.getRow() == 0) {
                // 
                break;
            } else if (numrec.getColumn() == 0) { //
                current = new ExcelData();
                current.setId(Double.valueOf(numrec.getValue()).longValue());
            } else if (numrec.getColumn() == 1) {//
                current.setContent(String.valueOf(Double.valueOf(numrec.getValue()).longValue()));
                try {
                    add(current);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            break;

        } else if (record instanceof LabelSSTRecord) {
            //?String?SSTRecord
            LabelSSTRecord lrec = (LabelSSTRecord) record;

            if (lrec.getRow() == 0) {
                // 
                break;
            } else if (lrec.getColumn() == 0) { //
                current = new ExcelData();
                String value = sstrec.getString(lrec.getSSTIndex()).getString();
                current.setId(Double.valueOf(value).longValue());
            } else if (lrec.getColumn() == 1) {//
                String value = sstrec.getString(lrec.getSSTIndex()).getString();
                current.setContent(value);
                try {
                    add(current);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            break;
        }
        break;
    }

}

From source file:com.netxforge.netxstudio.screens.f4.support.XLSService.java

License:Open Source License

/**
 * This method listens for incoming records and handles them as required.
 * /*from  ww w  . j  av  a2 s.  c  o  m*/
 * @param record
 *            The record that was found while reading.
 */
private int processRecordInternal(Record record) {

    if (currentMonitor.isCanceled()) {
        // we should interrupt the process here.
        return ABORTED;
    }

    // Produce a multiple kvp for the .xls

    switch (record.getSid()) {
    // the BOFRecord can represent either the beginning of a sheet or the
    // workbook
    case BOFRecord.sid:
        BOFRecord bof = (BOFRecord) record;
        if (bof.getType() == BOFRecord.TYPE_WORKBOOK) {
            System.out.println("Encountered workbook");
            // assigned to the class level member
        } else if (bof.getType() == BOFRecord.TYPE_WORKSHEET) {

            currentRecordMap = Lists.newArrayListWithExpectedSize(32);
            // fill the list with at least x map entries.
            for (int i = 0; i < MAX_VISIBLE_ROWS; i++) {
                Map<Integer, Tuple> map = Maps.newHashMap();
                currentRecordMap.add(map);
            }

            sheets.add(currentRecordMap);
            System.out.println("Encountered sheet reference, changing sheet...");
        }
        break;
    case BoundSheetRecord.sid:
        BoundSheetRecord bsr = (BoundSheetRecord) record;
        System.out.println("New sheet named: " + bsr.getSheetname());

        break;

    // Row records come in batch (32) before the actual cell records.

    case RowRecord.sid:

        RowRecord rowrec = (RowRecord) record;
        // Look for our header row, when found we have to interpret the
        // values.

        System.out.println("Row found" + rowrec.getRowNumber() + ", first column at " + rowrec.getFirstCol()
                + " last column at " + rowrec.getLastCol());
        break;

    // SSTRecords store a array of unique strings used in Excel.
    case SSTRecord.sid:
        currentSStrec = (SSTRecord) record;
        // for (int k = 0; k < currentSStrec.getNumUniqueStrings(); k++) {
        // System.out.println("String table value " + k + " = "
        // + currentSStrec.getString(k));
        // }
        break;
    case DateWindow1904Record.sid: {
        System.out.println("Hitting Date record. ");

    }
        break;
    case NumberRecord.sid:
    case LabelSSTRecord.sid:

        int column = -1;
        int row = -1;
        Object value = null;

        if (record.getSid() == NumberRecord.sid) {
            NumberRecord numrec = (NumberRecord) record;

            double numValue = numrec.getValue();
            column = numrec.getColumn();
            row = numrec.getRow();

            value = this.formatNumberDateCell(numrec, numValue);

            // DEBUG
            System.out.println("Number:Cell found with value " + value + " at: [" + row + "," + column + "]");

        }
        if (record.getSid() == LabelSSTRecord.sid) {
            LabelSSTRecord lrec = (LabelSSTRecord) record;
            value = currentSStrec.getString(lrec.getSSTIndex()).toString();
            column = lrec.getColumn();
            row = lrec.getRow();

            // DEBUG
            System.out.println("String:Cell found with value " + value + " at: [" + row + "," + column + "]");
        }

        if (value != null && row != -1 && column != -1) {
            Tuple t = new Tuple(column, value);

            if (currentRecordMap.size() < row) {
                Map<Integer, Tuple> map = Maps.newHashMap();
                currentRecordMap.add(map);
            }
            currentRecordMap.get(row).put(column, t);

        } else {
            System.err.println("Incomplete cell encountered" + "v=" + value + " r=" + row + " c=" + column);
        }
        // TODO, do a more gracefull check with a switch break to proceed,
        // or other strategy if this fails.
        // assert row > 0 && column > 0 && value != null;

        if (column == 0) {
            currentMonitor.worked(1);
            currentRowProgress = true; // reset for the next row.
            processedRows++; // Update the number of processed rows.

        } else {
            // Did we have a failure on a previous column, if so skip this
            // column until the next row.
            if (!currentRowProgress) {
                break;
            }
            // We have an undefined column.
            this.currentRowProgress = false;

        }

        break;
    }
    return OK;
}

From source file:org.jab.docsearch.converters.ExcelListener.java

License:Open Source License

/**
 * This method listens for incoming records and handles them as required.
 *
 * @param record  The record that was found while reading.
 *///w w  w.  ja  v a 2  s  .co m
@Override
public void processRecord(Record record) {
    try {
        switch (record.getSid()) {
        case NumberRecord.sid: {
            NumberRecord numrec = (NumberRecord) record;

            excelText.append(numrec.getValue());
            excelText.append('\n');

            break;
        }
        // SSTRecords store a array of unique strings used in Excel
        case SSTRecord.sid: {
            SSTRecord sstrec = (SSTRecord) record;

            for (int k = 0; k < sstrec.getNumUniqueStrings(); k++) {
                excelText.append(sstrec.getString(k));
                excelText.append('\n');
            }

            break;
        }
        }
    } catch (Exception e) {
        log.error("processRecords() failed for Excel file", e);
    }
}

From source file:org.tonguetied.datatransfer.importing.ExcelKeywordParser.java

License:Apache License

public void processRecord(Record record) {
    if (record == null) {
        if (logger.isInfoEnabled())
            logger.info("no record to process");
    } else {//  www .j  av  a  2s .  com
        switch (record.getSid()) {
        // the BOFRecord can represent either the beginning of a sheet 
        // or the workbook
        case BOFRecord.sid:
            if (!(record instanceof BOFRecord))
                throw new ImportException("unknown excel element", null);
            final BOFRecord bof = (BOFRecord) record;
            if (bof.getType() == BOFRecord.TYPE_WORKBOOK) {
                if (logger.isInfoEnabled())
                    logger.info("Processing excel workbook");
                // assigned to the class level member
            } else if (bof.getType() == BOFRecord.TYPE_WORKSHEET) {
                if (logger.isInfoEnabled())
                    logger.info("recordsize = " + bof.getRecordSize() + ", required version = "
                            + bof.getRequiredVersion());
            }
            break;
        case BoundSheetRecord.sid:
            if (!(record instanceof BoundSheetRecord))
                throw new ImportException("unknown excel element", null);
            final BoundSheetRecord bsr = (BoundSheetRecord) record;
            // sheets named have no impact on generating query
            if (logger.isDebugEnabled())
                logger.debug("processing sheet: " + bsr.getSheetname());
            break;
        case RowRecord.sid:
            if (!(record instanceof RowRecord))
                throw new ImportException("unknown excel element", null);
            if (logger.isDebugEnabled()) {
                final RowRecord rowrec = (RowRecord) record;
                logger.debug("processing row: " + rowrec.getRowNumber());
            }
            break;
        case NumberRecord.sid:
            if (!(record instanceof NumberRecord))
                throw new ImportException("unknown excel element", null);
            final NumberRecord numrec = (NumberRecord) record;
            logger.warn("Cell [" + numrec.getRow() + "," + numrec.getColumn()
                    + "] expecting a string value not numeric: " + numrec.getValue() + ". Ignoring value");
            break;
        case SSTRecord.sid:
            if (!(record instanceof SSTRecord))
                throw new ImportException("unknown excel element", null);
            // SSTRecords store a array of unique strings used in Excel.
            sstrec = (SSTRecord) record;
            if (logger.isDebugEnabled()) {
                logger.debug("file contains " + sstrec.getNumUniqueStrings() + " unique strings");
            }
            break;
        case LabelSSTRecord.sid:
            if (!(record instanceof LabelSSTRecord))
                throw new ImportException("unknown excel element", null);
            final LabelSSTRecord lrec = (LabelSSTRecord) record;
            if (lrec.getRow() != 0) {
                if (lrec.getColumn() == 0) {
                    evaluateRowType(lrec);
                } else {
                    final String cellValue = sstrec.getString(lrec.getSSTIndex()).getString();
                    if (lrec.getColumn() == 1) {
                        switch (rowType) {
                        case keyword:
                            // there were no translations for the previous keyword, so add to keywords
                            if (keyword != null && keyword.getTranslations().isEmpty())
                                keywords.put(keyword.getKeyword(), keyword);
                            loadKeyword(cellValue);
                            break;
                        case context:
                            if (StringUtils.isNotBlank(cellValue))
                                keyword.setContext(cellValue);
                            break;
                        default:
                            break;
                        }
                    } else if (lrec.getColumn() == 2) {
                        baseTranslation = new Translation();
                        baseTranslation.setKeyword(keyword);
                        final LanguageCode code = ImporterUtils.evaluateLanguageCode(cellValue, errorCodes);
                        Language language = null;
                        if (code != null) {
                            language = keywordService.getLanguage(code);
                            if (language == null)
                                errorCodes.add(ImportErrorCode.unknownLanguage);
                        }
                        baseTranslation.setLanguage(language);
                    } else if (lrec.getColumn() == 4) {
                        final CountryCode code = ImporterUtils.evaluateCountryCode(cellValue, errorCodes);
                        Country country = null;
                        if (code != null) {
                            country = keywordService.getCountry(code);
                            if (country == null)
                                errorCodes.add(ImportErrorCode.unknownCountry);
                        }
                        baseTranslation.setCountry(country);
                    } else if (lrec.getColumn() == 6) {
                        final Bundle bundle = keywordService.getBundleByName(cellValue);
                        if (bundle == null)
                            errorCodes.add(ImportErrorCode.unknownBundle);
                        baseTranslation.setBundle(bundle);
                    } else if (lrec.getColumn() == 7) {
                        final TranslationState state = ImporterUtils.evaluateTranslationState(cellValue,
                                errorCodes);
                        baseTranslation.setState(state);
                    } else if (lrec.getColumn() == 8) {
                        baseTranslation.setValue(cellValue);
                        keyword.addTranslation(baseTranslation);
                        keywords.put(keyword.getKeyword(), keyword);
                    }
                }

            }
            break;
        default:
            break;
        }
    }
}

From source file:org.tonguetied.datatransfer.importing.ExcelLanguageCentricParser.java

License:Apache License

/**
 * This method listens for incoming records and handles them as required.
 * /*from w w  w.j  a va  2  s  .  c  o m*/
 * @param record The record that was found while reading.
 */
public void processRecord(Record record) {
    if (record == null) {
        if (logger.isInfoEnabled())
            logger.info("no record to process");
    } else {
        switch (record.getSid()) {
        // the BOFRecord can represent either the beginning of a sheet 
        // or the workbook
        case BOFRecord.sid:
            if (!(record instanceof BOFRecord))
                throw new ImportException("unknown excel element", null);
            final BOFRecord bof = (BOFRecord) record;
            if (bof.getType() == BOFRecord.TYPE_WORKBOOK) {
                if (logger.isInfoEnabled())
                    logger.info("Processing excel workbook");
                // assigned to the class level member
            } else if (bof.getType() == BOFRecord.TYPE_WORKSHEET) {
                if (logger.isInfoEnabled())
                    logger.info("recordsize = " + bof.getRecordSize() + ", required version = "
                            + bof.getRequiredVersion());
            }
            break;
        case BoundSheetRecord.sid:
            if (!(record instanceof BoundSheetRecord))
                throw new ImportException("unknown excel element", null);
            final BoundSheetRecord bsr = (BoundSheetRecord) record;
            // sheets named have no impact on generating query
            if (logger.isDebugEnabled())
                logger.debug("processing sheet: " + bsr.getSheetname());
            break;
        case RowRecord.sid:
            if (!(record instanceof RowRecord))
                throw new ImportException("unknown excel element", null);
            final RowRecord rowrec = (RowRecord) record;
            lastColOfRow = rowrec.getLastCol();
            //                    if (rowrec.getRowNumber() > 0) {
            //                        if (logger.isDebugEnabled())
            //                            logger.debug("creating new keyword instance");
            //                        keyword = new Keyword();
            //                    }
            break;
        case NumberRecord.sid:
            if (!(record instanceof NumberRecord))
                throw new ImportException("unknown excel element", null);
            final NumberRecord numrec = (NumberRecord) record;
            logger.warn("Cell [" + numrec.getRow() + "," + numrec.getColumn()
                    + "] expecting a string value not numeric: " + numrec.getValue() + ". Ignoring value");
            break;
        case SSTRecord.sid:
            if (!(record instanceof SSTRecord))
                throw new ImportException("unknown excel element", null);
            // SSTRecords store a array of unique strings used in Excel.
            sstrec = (SSTRecord) record;
            if (logger.isDebugEnabled()) {
                logger.debug("file contains " + sstrec.getNumUniqueStrings() + " unique strings");
            }
            break;
        case LabelSSTRecord.sid:
            if (!(record instanceof LabelSSTRecord))
                throw new ImportException("unknown excel element", null);
            final LabelSSTRecord lrec = (LabelSSTRecord) record;
            if (lrec.getRow() == 0) {
                processHeader(lrec);
            } else {
                if (lrec.getColumn() == 0) {
                    String keywordStr = sstrec.getString(lrec.getSSTIndex()).getString();
                    loadKeyword(keywordStr);
                } else if (lrec.getColumn() == 1) {
                    keyword.setContext(sstrec.getString(lrec.getSSTIndex()).getString());
                } else if (lrec.getColumn() == 2) {
                    baseTranslation = new Translation();
                    baseTranslation.setKeyword(keyword);
                    String name = sstrec.getString(lrec.getSSTIndex()).getString();
                    Bundle bundle = keywordService.getBundleByName(name);
                    baseTranslation.setBundle(bundle);
                } else if (lrec.getColumn() == 3) {
                    String colHeader = sstrec.getString(lrec.getSSTIndex()).getString();
                    String[] headers = colHeader.split(":");
                    CountryCode code = CountryCode.valueOf(headers[0]);
                    Country country = keywordService.getCountry(code);
                    baseTranslation.setCountry(country);
                } else {
                    Language language = languages.get(lrec.getColumn() - 4);
                    String value = sstrec.getString(lrec.getSSTIndex()).getString();
                    Translation translation = baseTranslation.deepClone();
                    if (language.getCode() == LanguageCode.zht) {
                        language = keywordService.getLanguage(LanguageCode.zh);
                        Country country = keywordService.getCountry(CountryCode.TW);
                        translation.setCountry(country);
                    }
                    translation.setLanguage(language);
                    translation.setState(TranslationState.UNVERIFIED);
                    translation.setValue(value);
                    keyword.addTranslation(translation);
                    //                        System.out.println("String cell found with value "
                    //                                + sstrec.getString(lrec.getSSTIndex()));
                }

                if (isLastColumn(lrec.getColumn())) {
                    keywords.put(keyword.getKeyword(), keyword);
                }
            }
            break;
        default:
            break;
        }
    }
}