List of usage examples for org.apache.poi.hssf.record BOFRecord getRequiredVersion
public int getRequiredVersion()
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 {// w ww . ja va 2s . c o m 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 ww w . ja va2 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; } } }