List of usage examples for org.apache.poi.xssf.eventusermodel XSSFReader getSheet
public InputStream getSheet(String relId) throws IOException, InvalidFormatException
From source file:ca.tsc.special_request_tool.testing.FromHowTo.java
License:Apache License
public void processOneSheet(String filename, InfoHolder holder) throws Exception { OPCPackage pkg = OPCPackage.open(new File(filename)); XSSFReader r = new XSSFReader(pkg); SharedStringsTable sst = r.getSharedStringsTable(); XMLReader parser = fetchSheetParser(sst, holder); // rId2 found by processing the Workbook // Seems to either be rId# or rSheet# InputStream sheet2 = r.getSheet("rId2"); InputSource sheetSource = new InputSource(sheet2); parser.parse(sheetSource);//from w w w .j a v a 2 s .c o m sheet2.close(); }
From source file:com.anthill.excelcompare.main.impl.FromHowTo.java
License:Apache License
public void processOneSheet(String filename) throws Exception { OPCPackage pkg = OPCPackage.open(filename); XSSFReader r = new XSSFReader(pkg); SharedStringsTable sst = r.getSharedStringsTable(); XMLReader parser = fetchSheetParser(sst); // rId2 found by processing the Workbook // Seems to either be rId# or rSheet# InputStream sheet2 = r.getSheet("rId2"); InputSource sheetSource = new InputSource(sheet2); parser.parse(sheetSource);//from ww w .ja v a 2s . c o m sheet2.close(); }
From source file:com.ljh.excel.parser.FromHowTo.java
License:Apache License
public void processFirstSheet(String filename) throws Exception { OPCPackage pkg = OPCPackage.open(filename); XSSFReader r = new XSSFReader(pkg); SharedStringsTable sst = r.getSharedStringsTable(); XMLReader parser = fetchSheetParser(sst); // To look up the Sheet Name / Sheet Order / rID, // you need to process the core Workbook stream. // Normally it's of the form rId# or rSheet# InputStream sheet2 = r.getSheet("rId2"); InputSource sheetSource = new InputSource(sheet2); parser.parse(sheetSource);/*from ww w . j a v a 2 s.co m*/ sheet2.close(); }
From source file:com.mycompany.javaapplicaton3.ExampleEventUserModel.java
public void processOneSheet(String filename) throws Exception { OPCPackage pkg = OPCPackage.open(filename); XSSFReader r = new XSSFReader(pkg); SharedStringsTable sst = r.getSharedStringsTable(); XMLReader parser = fetchSheetParser(sst); // rId2 found by processing the Workbook // Seems to either be rId# or rSheet# InputStream sheet2 = r.getSheet("rId1"); InputSource sheetSource = new InputSource(sheet2); parser.parse(sheetSource);//from w w w . j ava 2s. c o m sheet2.close(); }
From source file:ec.util.spreadsheet.poi.FastPoiBook.java
License:EUPL
private static ByteSource newSheetSupplier(final XSSFReader reader, final String relationId) { return new ByteSource() { @Override//from ww w .j a v a 2s . com public InputStream openStream() throws IOException { try { return reader.getSheet(relationId); } catch (InvalidFormatException ex) { throw new IOException(ex); } } }; }
From source file:edu.harvard.iq.dataverse.ingest.tabulardata.impl.plugins.xlsx.XLSXFileReader.java
License:Apache License
public void processSheet(InputStream inputStream, DataTable dataTable, PrintWriter tempOut) throws Exception { OPCPackage pkg = OPCPackage.open(inputStream); XSSFReader r = new XSSFReader(pkg); SharedStringsTable sst = r.getSharedStringsTable(); XMLReader parser = fetchSheetParser(sst, dataTable, tempOut); // rId2 found by processing the Workbook // Seems to either be rId# or rSheet# InputStream sheet1 = r.getSheet("rId1"); InputSource sheetSource = new InputSource(sheet1); parser.parse(sheetSource);//from w ww. java 2 s .c o m sheet1.close(); }
From source file:org.apache.metamodel.excel.XlsxSpreadsheetReaderDelegate.java
License:Apache License
private void buildColumns(final MutableTable table, final String relationshipId, final XSSFReader xssfReader) throws Exception { final InputStream sheetData = xssfReader.getSheet(relationshipId); final XlsxRowCallback rowCallback = new XlsxRowCallback() { @Override/* w ww . java 2s . c om*/ public boolean row(int rowNumber, List<String> values, List<Style> styles) { final int columnNameLineNumber = _configuration.getColumnNameLineNumber(); final boolean hasColumnNameLine = columnNameLineNumber != ExcelConfiguration.NO_COLUMN_NAME_LINE; if (hasColumnNameLine) { final int zeroBasedLineNumber = columnNameLineNumber - 1; if (rowNumber < zeroBasedLineNumber) { // jump to read the next line return true; } } final ColumnNamingStrategy columnNamingStrategy = _configuration.getColumnNamingStrategy(); try (ColumnNamingSession session = columnNamingStrategy.startColumnNamingSession()) { for (int i = 0; i < values.size(); i++) { final String intrinsicColumnName = hasColumnNameLine ? values.get(i) : null; final String columnName = session .getNextColumnName(new ColumnNamingContextImpl(table, intrinsicColumnName, i)); if (!(_configuration.isSkipEmptyColumns() && values.get(i) == null)) { table.addColumn(new MutableColumn(columnName, ColumnType.STRING, table, i, true)); } } } // now we're done, no more reading return false; } }; final XlsxSheetToRowsHandler handler = new XlsxSheetToRowsHandler(rowCallback, xssfReader, _configuration); final XMLReader sheetParser = ExcelUtils.createXmlReader(); sheetParser.setContentHandler(handler); try { sheetParser.parse(new InputSource(sheetData)); } catch (XlsxStopParsingException e) { logger.debug("Parsing stop signal thrown"); } finally { FileHelper.safeClose(sheetData); } }
From source file:org.generationcp.middleware.util.PoiEventUserModel.java
License:Open Source License
public void areSheetRowsOverMaxLimit(String filename, int sheetIndex, int maxLimit) throws Exception { this.maxLimit = maxLimit; OPCPackage pkg = OPCPackage.open(filename); XSSFReader r = new XSSFReader(pkg); XMLReader parser = this.fetchSheetParser(); InputStream sheet2 = null;/*from w w w . j a v a 2s .co m*/ // rId2 found by processing the Workbook // Seems to either be rId# or rSheet# try { sheet2 = r.getSheet("rId" + (sheetIndex + 1)); } catch (Exception e) { PoiEventUserModel.LOG.error("Sheet could not be retrieved", e); } if (sheet2 == null) { try { sheet2 = r.getSheet("rSheet" + (sheetIndex + 1)); } catch (Exception e) { PoiEventUserModel.LOG.error("Sheet could not be retrieved", e); } } InputSource sheetSource = new InputSource(sheet2); parser.parse(sheetSource); if (sheet2 != null) { sheet2.close(); } }
From source file:org.generationcp.middleware.util.PoiEventUserModel.java
License:Open Source License
public void isAnySheetRowsOverMaxLimit(String filename, int maxLimit) throws Exception { this.maxLimit = maxLimit; OPCPackage pkg = OPCPackage.open(filename); XSSFReader r = new XSSFReader(pkg); XMLReader parser = this.fetchSheetParser(); for (int i = 1; i < 10; i++) { InputStream sheet = null; // rId2 found by processing the Workbook // Seems to either be rId# or rSheet# try {// w w w .ja va 2s.c om sheet = r.getSheet("rId" + i); } catch (Exception e) { e.printStackTrace(); } if (sheet == null) { try { sheet = r.getSheet("rSheet" + i); } catch (Exception e) { e.printStackTrace(); } } if (sheet != null) { InputSource sheetSource = new InputSource(sheet); parser.parse(sheetSource); sheet.close(); } else { break; } } }
From source file:org.jberet.support.io.ExcelStreamingItemReader.java
License:Open Source License
@Override protected void initWorkbookAndSheet(final int startRowNumber) throws Exception { InputStream workbookDataInputStream = null; XMLStreamReader workbookStreamReader = null; try {/*from w w w .j ava2 s. c om*/ final OPCPackage opcPackage = OPCPackage.open(inputStream); final XSSFReader xssfReader = new XSSFReader(opcPackage); workbookDataInputStream = xssfReader.getWorkbookData(); final XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); workbookStreamReader = xmlInputFactory.createXMLStreamReader(workbookDataInputStream); sharedStringsTable = xssfReader.getSharedStringsTable(); /* sample sheet element: <sheets> <sheet name="Movies" sheetId="1" state="visible" r:id="rId2"/> <sheet name="Person" sheetId="2" state="visible" r:id="rId3"/> </sheets> */ while (workbookStreamReader.hasNext()) { if (workbookStreamReader.next() == XMLStreamConstants.START_ELEMENT && "sheet".equals(workbookStreamReader.getLocalName())) { final String shn = workbookStreamReader.getAttributeValue(null, "name"); final String shId = workbookStreamReader.getAttributeValue(null, "sheetId"); if ((sheetName != null && sheetName.equals(shn)) || (sheetName == null && String.valueOf(this.sheetIndex + 1).equals(shId))) { //this is the target sheet final String relationshipId = workbookStreamReader.getAttributeValue(schemaRelationships, "id"); sheetInputStream = xssfReader.getSheet(relationshipId); sheetStreamReader = xmlInputFactory.createXMLStreamReader(sheetInputStream); break; } } } } finally { if (workbookDataInputStream != null) { try { workbookDataInputStream.close(); } catch (final Exception e) { //ignore } } if (workbookStreamReader != null) { try { workbookStreamReader.close(); } catch (final Exception e) { //ignore } } } /* sample row element: <row r="1" customFormat="false" ht="15" hidden="false" customHeight="false" outlineLevel="0" collapsed="false"> <c r="A1" s="0" t="s"> <v>0</v> </c> <c r="B1" s="0" t="s"> <v>1</v> </c> <c r="C1" s="0" t="s"> <v>2</v> </c> <c r="D1" s="0" t="s"> <v>3</v> </c> </row> For inlineStr: <c r="A1" t="inlineStr"> <is> <t>Date</t> </is> </c> Note: a blank cell does not show up in xml at all. So for list type beanType, need to detect blank cell and add null; for map or custom beanType, need to link to the correct header column by r attribute. */ if (header == null) { headerMapping = new HashMap<String, String>(); outerLoop: while (sheetStreamReader.hasNext()) { if (sheetStreamReader.next() == XMLStreamConstants.START_ELEMENT && "row".equals(sheetStreamReader.getLocalName())) { final int rowNum = Integer.parseInt(sheetStreamReader.getAttributeValue(null, "r")); if (headerRow + 1 == rowNum) { // got the header row, next loop through header row cells final List<String> headerVals = new ArrayList<String>(); while (sheetStreamReader.hasNext()) { final int event = sheetStreamReader.next(); if (event == XMLStreamConstants.START_ELEMENT && "c".equals(sheetStreamReader.getLocalName())) { final String label = getColumnLabel(sheetStreamReader.getAttributeValue(null, "r")); final String value = getCellStringValue(); headerVals.add(value); headerMapping.put(label, value); } else if (event == XMLStreamConstants.END_ELEMENT && "row".equals(sheetStreamReader.getLocalName())) { header = headerVals.toArray(new String[headerVals.size()]); currentRowNum = rowNum - 1; break outerLoop; } } } } } } //fast forward to the start row, which may not immediately follow header row while (currentRowNum < startRowNumber - 1 && sheetStreamReader.hasNext()) { if (sheetStreamReader.next() == XMLStreamConstants.START_ELEMENT && "row".equals(sheetStreamReader.getLocalName())) { currentRowNum = Integer.parseInt(sheetStreamReader.getAttributeValue(null, "r")) - 1; } else if (sheetStreamReader.next() == XMLStreamConstants.END_ELEMENT && "row".equals(sheetStreamReader.getLocalName())) { if (currentRowNum >= startRowNumber - 1) { break; } } } }