List of usage examples for org.apache.poi.poifs.filesystem POIFSFileSystem POIFSFileSystem
public POIFSFileSystem(InputStream stream) throws IOException
From source file:org.talend.mdm.webapp.browserecords.server.service.UploadService.java
License:Open Source License
private List<WSPutItemWithReport> readExcelFile(FileInputStream fileInputStream) throws ServiceException, Exception { List<WSPutItemWithReport> wSPutItemWithReportList = new LinkedList<WSPutItemWithReport>(); String[] importHeader = null; Workbook workBook = null;/*from w w w.j av a2s .c om*/ if (FILE_TYPE_EXCEL_SUFFIX.equals(fileType.toLowerCase())) { POIFSFileSystem poiFSFile = new POIFSFileSystem(fileInputStream); workBook = new HSSFWorkbook(poiFSFile); } else { workBook = new XSSFWorkbook(fileInputStream); } Sheet sheet = workBook.getSheetAt(0); Iterator<Row> rowIterator = sheet.rowIterator(); int rowNumber = 0; boolean dataLine; while (rowIterator.hasNext()) { dataLine = false; rowNumber++; if ((rowNumber - 1) > defaultMaxImportCount) { break; } Row row = rowIterator.next(); if (rowNumber == 1) { importHeader = readHeader(row, null); if (importHeader != null && importHeader.length > 0 && entityModel != null) { validateKeyFieldExist(importHeader); } if (headersOnFirstLine) { continue; } } multiNodeMap = new HashMap<String, List<Element>>(); if (importHeader != null) { Document document; if (isPartialUpdate) { Boolean keyContainsEmpty = false; String[] keys = new String[entityModel.getKeys().length]; for (int k = 0; k < entityModel.getKeys().length; k++) { for (String header : importHeader) { if (header.equals(entityModel.getKeys()[k]) && row.getCell(k) != null) { keys[k] = getExcelFieldValue(row.getCell(k)); if (keys[k].isEmpty()) { keyContainsEmpty = true; } } else if (header.equals(entityModel.getKeys()[k]) && row.getCell(k) == null) { keyContainsEmpty = true; } } } if (keyContainsEmpty) { if (isEmptyRecordInExcel(row, importHeader)) { rowNumber--; continue; } throw new UploadException(MESSAGES.getMessage(new Locale(language), "save_error") + " " //$NON-NLS-1$ //$NON-NLS-2$ + MESSAGES.getMessage(new Locale(language), "save_row_count", rowNumber) //$NON-NLS-1$ + MESSAGES.getMessage(new Locale(language), "error_missing_key_field")); //$NON-NLS-1$ } document = getItemForPartialUpdate(entityModel, keys, rowNumber); } else { if (isEmptyRecordInExcel(row, importHeader)) { rowNumber--; continue; } document = XmlUtil.parseDocument(org.talend.mdm.webapp.browserecords.server.util.CommonUtil .getSubXML(typeModel, null, null, language)); } Element currentElement = document.getRootElement(); for (int i = 0; i < importHeader.length; i++) { if (row.getCell(i) != null) { String fieldValue = getExcelFieldValue(row.getCell(i)); if (fieldValue != null && !fieldValue.isEmpty()) { dataLine = true; fillFieldValue(currentElement, importHeader[i], fieldValue, row, null); } else { if (isPartialUpdate) { dataLine = true; fillFieldValue(currentElement, importHeader[i], "", row, null); //$NON-NLS-1$ } } } else { if (isPartialUpdate) { dataLine = true; fillFieldValue(currentElement, importHeader[i], "", row, null); //$NON-NLS-1$ } } } if (dataLine) { wSPutItemWithReportList.add(buildWSPutItemWithReport(document)); } } } return wSPutItemWithReportList; }
From source file:org.talend.mdm.webapp.browserecords.server.service.UploadServiceTest.java
License:Open Source License
public void testGetExcelFieldValue() throws Exception { boolean partialUpdateFlag = true; String[] keys = { "EntityA/EntityAId" }; //$NON-NLS-1$ headerVisibleMap = new HashMap<String, Boolean>(); headerVisibleMap.put("EntityA/EntityAId", true); //$NON-NLS-1$ headerVisibleMap.put("EntityA/Name", true); //$NON-NLS-1$ headerVisibleMap.put("EntityA/Age", true); //$NON-NLS-1$ multipleValueSeparator = "|"; //$NON-NLS-1$ EntityModel em = getEntityModel("PartialUpdateModel.xsd", "PartialUpdateModel", "EntityA", keys); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ UploadService service = new TestUploadService(em, fileType, partialUpdateFlag, headersOnFirstLine, headerVisibleMap, inheritanceNodePathList, multipleValueSeparator, seperator, encoding, textDelimiter, language);//from w w w . j av a 2s . c o m String[] importHeader = new String[] { "EntityA/EntityAId" }; //$NON-NLS-1$ try { service.validateKeyFieldExist(importHeader); } catch (Exception e) { fail("Key Field is not Exist"); //$NON-NLS-1$ } file = new File(this.getClass().getResource("UploadTestModel_PartialUpdate.xls").getFile()); //$NON-NLS-1$ try { FileInputStream fileInputStream = new FileInputStream(file); POIFSFileSystem poiFSFile = new POIFSFileSystem(fileInputStream); Workbook workBook = new HSSFWorkbook(poiFSFile); Sheet sheet = workBook.getSheetAt(0); Iterator<Row> rowIterator = sheet.rowIterator(); int rowNumber = 0; while (rowIterator.hasNext()) { rowNumber++; Row row = rowIterator.next(); if (rowNumber == 1) { continue; } else if (rowNumber == 2) { assertEquals("22", service.getExcelFieldValue(row.getCell(0))); //$NON-NLS-1$ assertEquals("updatedName2", service.getExcelFieldValue(row.getCell(1))); //$NON-NLS-1$ assertEquals("2222", service.getExcelFieldValue(row.getCell(2))); //$NON-NLS-1$ } else if (rowNumber == 3) { assertEquals("33", service.getExcelFieldValue(row.getCell(0))); //$NON-NLS-1$ assertEquals("updatedName3", service.getExcelFieldValue(row.getCell(1))); //$NON-NLS-1$ assertEquals("3333", service.getExcelFieldValue(row.getCell(2))); //$NON-NLS-1$ } else if (rowNumber == 4) { assertEquals("44", service.getExcelFieldValue(row.getCell(0))); //$NON-NLS-1$ assertEquals("updatedName4", service.getExcelFieldValue(row.getCell(1))); //$NON-NLS-1$ assertEquals("4444", service.getExcelFieldValue(row.getCell(2))); //$NON-NLS-1$ } } } catch (Exception exception) { fail("get excel file field value failed."); //$NON-NLS-1$ } }
From source file:org.talend.mdm.webapp.browserecords.server.service.UploadServiceTest.java
License:Open Source License
public void testImportWithDefaultImportCount() throws Exception { fileType = "xls"; //$NON-NLS-1$ multipleValueSeparator = "|"; //$NON-NLS-1$ file = new File(this.getClass().getResource("Product_defalutImportCount.xls").getFile()); //$NON-NLS-1$ String[] keys = { "Product/Id" }; //$NON-NLS-1$ entityModel = getEntityModel("Product.xsd", "Product", "Product", keys); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ UploadService service = new TestUploadService(entityModel, fileType, isPartialUpdate, headersOnFirstLine, headerVisibleMap, inheritanceNodePathList, multipleValueSeparator, seperator, encoding, textDelimiter, language);//from w w w . j a v a2 s. co m List<WSPutItemWithReport> wsPutItemWithReportList = service.readUploadFile(file); FileInputStream fileInputStream = new FileInputStream(file); POIFSFileSystem poiFSFile = new POIFSFileSystem(fileInputStream); Workbook workBook = new HSSFWorkbook(poiFSFile); Sheet sheet = workBook.getSheetAt(0); assertEquals(15, sheet.getLastRowNum()); assertEquals(10, wsPutItemWithReportList.size()); fileType = "csv"; //$NON-NLS-1$ file = new File(this.getClass().getResource("Product_defalutImportCount.csv").getFile()); //$NON-NLS-1$ service = new TestUploadService(entityModel, fileType, isPartialUpdate, headersOnFirstLine, headerVisibleMap, inheritanceNodePathList, multipleValueSeparator, seperator, encoding, textDelimiter, language); wsPutItemWithReportList = service.readUploadFile(file); assertEquals(10, wsPutItemWithReportList.size()); }
From source file:org.talend.mdm.webapp.browserecords.server.service.UploadServiceTest.java
License:Open Source License
public void testGetExcelForeignKeyFieldValue() throws Exception { String[] keys = { "Product/Id" }; //$NON-NLS-1$ headerVisibleMap = new HashMap<String, Boolean>(); headerVisibleMap.put("Product/Id", true); //$NON-NLS-1$ headerVisibleMap.put("Product/Name", true); //$NON-NLS-1$ headerVisibleMap.put("Product/Price", true); //$NON-NLS-1$ headerVisibleMap.put("Product/Description", true); //$NON-NLS-1$ headerVisibleMap.put("Product/Availability", true); //$NON-NLS-1$ headerVisibleMap.put("Product/Features/Sizes/Size", true); //$NON-NLS-1$ headerVisibleMap.put("Product/Features/Colors/Color", true); //$NON-NLS-1$" headerVisibleMap.put("Product/Family", true); //$NON-NLS-1$" multipleValueSeparator = "|"; //$NON-NLS-1$ EntityModel entityModel = getEntityModel("Product.xsd", "Product", "Product", keys); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ UploadService service = new TestUploadService(entityModel, fileType, isPartialUpdate, headersOnFirstLine, headerVisibleMap, inheritanceNodePathList, multipleValueSeparator, seperator, encoding, textDelimiter, language);/*from ww w . j a v a 2 s . co m*/ file = new File(this.getClass().getResource("Product_FK.xls").getFile()); //$NON-NLS-1$ try { FileInputStream fileInputStream = new FileInputStream(file); POIFSFileSystem poiFSFile = new POIFSFileSystem(fileInputStream); Workbook workBook = new HSSFWorkbook(poiFSFile); Sheet sheet = workBook.getSheetAt(0); Iterator<Row> rowIterator = sheet.rowIterator(); int rowNumber = 0; while (rowIterator.hasNext()) { rowNumber++; Row row = rowIterator.next(); if (rowNumber == 1) { continue; } else if (rowNumber == 2) { assertEquals("Id1", service.getExcelFieldValue(row.getCell(0))); //$NON-NLS-1$ assertEquals("Name1", service.getExcelFieldValue(row.getCell(1))); //$NON-NLS-1$ assertEquals("111.0", service.getExcelFieldValue(row.getCell(2))); //$NON-NLS-1$ assertEquals("Description1", service.getExcelFieldValue(row.getCell(3))); assertEquals("[FK1]", service.transferFieldValue("Product/Family", (service.getExcelFieldValue(row.getCell(7))), "|")); } else if (rowNumber == 3) { assertEquals("Id2", service.getExcelFieldValue(row.getCell(0))); //$NON-NLS-1$ assertEquals("Name2", service.getExcelFieldValue(row.getCell(1))); //$NON-NLS-1$ assertEquals("222.0", service.getExcelFieldValue(row.getCell(2))); //$NON-NLS-1$ assertEquals("Description2", service.getExcelFieldValue(row.getCell(3))); assertEquals("[FK2]", service.transferFieldValue("Product/Family", (service.getExcelFieldValue(row.getCell(7))), "|")); } else if (rowNumber == 4) { assertEquals("Id3", service.getExcelFieldValue(row.getCell(0))); //$NON-NLS-1$ assertEquals("Name3", service.getExcelFieldValue(row.getCell(1))); //$NON-NLS-1$ assertEquals("333.0", service.getExcelFieldValue(row.getCell(2))); //$NON-NLS-1$ assertEquals("Description3", service.getExcelFieldValue(row.getCell(3))); assertEquals("[FK3]", service.transferFieldValue("Product/Family", (service.getExcelFieldValue(row.getCell(7))), "|")); } else if (rowNumber == 5) { assertEquals("Id4", service.getExcelFieldValue(row.getCell(0))); //$NON-NLS-1$ assertEquals("Name4", service.getExcelFieldValue(row.getCell(1))); //$NON-NLS-1$ assertEquals("444.0", service.getExcelFieldValue(row.getCell(2))); //$NON-NLS-1$ assertEquals("Description4", service.getExcelFieldValue(row.getCell(3))); assertEquals("[FK4]", service.transferFieldValue("Product/Family", (service.getExcelFieldValue(row.getCell(7))), "|")); } else if (rowNumber == 6) { assertEquals("Id5", service.getExcelFieldValue(row.getCell(0))); //$NON-NLS-1$ assertEquals("Name5", service.getExcelFieldValue(row.getCell(1))); //$NON-NLS-1$ assertEquals("555.0", service.getExcelFieldValue(row.getCell(2))); //$NON-NLS-1$ assertEquals("Description5", service.getExcelFieldValue(row.getCell(3))); assertEquals("[FK5]", service.transferFieldValue("Product/Family", (service.getExcelFieldValue(row.getCell(7))), "|")); } } } catch (Exception exception) { fail("get excel file field value failed."); //$NON-NLS-1$ } }
From source file:org.terrier.indexing.MSExcelDocument.java
License:Mozilla Public License
/** Get the reader appropriate for this InputStream. This involves converting the Excel document to a stream of words. On failure returns null and sets EOD to true, so no terms can be read from the object. //from w ww . j av a 2 s .c o m Uses the property <tt>indexing.excel.maxfilesize.mb</tt> to determine if the file is too big to open @param docStream */ @SuppressWarnings("unchecked") //poi version used is for Java 1.4. protected Reader getReader(InputStream docStream) { if (MAXFILESIZE > 0 && (filename == null || new File(filename).length() > MAXFILESIZE)) { logger.warn("WARNING: Excel document " + filename + " is too large for POI. Ignoring."); EOD = true; return null; } try { CharArrayWriter writer = new CharArrayWriter(); //opening the file system POIFSFileSystem fs = new POIFSFileSystem(docStream); //opening the work book HSSFWorkbook workbook = new HSSFWorkbook(fs); for (int i = 0; i < workbook.getNumberOfSheets(); i++) { //got the i-th sheet from the work book HSSFSheet sheet = workbook.getSheetAt(i); Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); Iterator cells = row.cellIterator(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: String num = Double.toString(cell.getNumericCellValue()).trim(); if (num.length() > 0) { writer.write(num + " "); } break; case HSSFCell.CELL_TYPE_STRING: String text = cell.getStringCellValue().trim(); if (text.length() > 0) { writer.write(text + " "); } break; } } } } return new CharArrayReader(writer.toCharArray()); } catch (Exception e) { logger.warn("WARNING: Problem converting excel document" + e); EOD = true; return null; } }
From source file:org.terrier.indexing.POIDocument.java
License:Mozilla Public License
protected POITextExtractor getExtractor(String filename, InputStream docStream) throws IOException { //Word .doc: if (filename.endsWith(".doc")) { return new WordExtractor(docStream); }/*from ww w . j a v a2 s . com*/ //Word .docx: if (filename.endsWith(".docx")) { return new XWPFWordExtractor(new XWPFDocument(docStream)); } //Powertpoint .ppt: if (filename.endsWith(".ppt")) { return new PowerPointExtractor(docStream); } //Powertpoint .pptx: if (filename.endsWith(".pptx")) { return new XSLFPowerPointExtractor(new XMLSlideShow(docStream)); } //Publisher .pub: if (filename.endsWith(".pub")) { return new PublisherTextExtractor(docStream); } //Excel: .xls: if (filename.endsWith(".xls")) { return new ExcelExtractor(new POIFSFileSystem(docStream)); } //Excel: .xlsx: if (filename.endsWith(".xlsx")) { return new org.apache.poi.xssf.extractor.XSSFExcelExtractor(new XSSFWorkbook(docStream)); } //Visio: .vsd: if (filename.endsWith(".vsd")) { return new VisioTextExtractor(docStream); } return null; }
From source file:org.testeditor.core.importer.ExcelFileImporter.java
License:Open Source License
/** * Returns generated TestData object.//from w w w . j a va 2s .c o m * * @param file * excel file for generating TestData. * @return TestData * @throws ExcelFileImportException * catch oldFileexceptions */ @SuppressWarnings("rawtypes") @Override public TestData getTestData(File file) throws ExcelFileImportException { TestData testData = new TestData(); InputStream input = null; try { input = new BufferedInputStream(new FileInputStream(file)); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); TestDataRow testDataRow = getTestDataRow(row); if (testDataRow.getList().size() > 0 && !dataRowIsEmpty(testDataRow)) { testData.addRow(testDataRow); } else { break; } } } catch (OldExcelFormatException e) { throw new ExcelFileImportException(e); } catch (FileNotFoundException e) { LOGGER.error("getTestData :: " + e.getMessage()); } catch (IOException e) { LOGGER.error("getTestData" + e.getMessage()); } finally { try { if (input != null) { input.close(); } } catch (IOException e) { LOGGER.error(e); } } return testData; }
From source file:org.textmining.extraction.excel.ExcelTextExtractor.java
License:Open Source License
public ExcelTextExtractor(InputStream in) throws IOException { POIFSFileSystem poifs = new POIFSFileSystem(in); DocumentEntry headerProps = (DocumentEntry) poifs.getRoot().getEntry("Workbook"); DocumentInputStream din = poifs.createDocumentInputStream("Workbook"); _recordStream = new byte[headerProps.getSize()]; din.read(_recordStream);// www . j a va 2 s. c o m din.close(); }
From source file:org.textmining.extraction.word.WordExtractorFactory.java
License:Open Source License
protected void initWordHeader(InputStream in) throws IOException, PasswordProtectedException { _fsys = new POIFSFileSystem(in); // load our POIFS document streams. DocumentEntry headerProps = (DocumentEntry) _fsys.getRoot().getEntry("WordDocument"); DocumentInputStream din = _fsys.createDocumentInputStream("WordDocument"); _header = new byte[headerProps.getSize()]; din.read(_header);/*from w ww . ja v a 2 s. co m*/ din.close(); }
From source file:org.textmining.extraction.word.WordTextExtractor.java
License:Open Source License
protected void initWordHeader(InputStream in) throws IOException, PasswordProtectedException { _fsys = new POIFSFileSystem(in); // load our POIFS document streams. DocumentEntry headerProps = (DocumentEntry) _fsys.getRoot().getEntry("WordDocument"); DocumentInputStream din = _fsys.createDocumentInputStream("WordDocument"); _header = new byte[headerProps.getSize()]; din.read(_header);/*w ww . j a va2 s . c o m*/ din.close(); initOptions(); }