sheetId = sheetID; sst = reader.getSharedStringsTable(); styles = reader.getStylesTable(); sheetStream = reader.getSheet( sheetID ); XMLInputFactory factory = XMLInputFactory.newInstance();
private XSSFReader mockXSSFReader( final String sheetId, final String sheetContent, final SharedStringsTable sst, final StylesTable styles ) throws Exception { XSSFReader reader = mock( XSSFReader.class ); when( reader.getSharedStringsTable() ).thenReturn( sst ); when( reader.getStylesTable() ).thenReturn( styles ); when( reader.getSheet( sheetId ) ).thenAnswer( new Answer<InputStream>() { public InputStream answer( InvocationOnMock invocation ) throws Throwable { return IOUtils.toInputStream( sheetContent, "UTF-8" ); } } ); return reader; }
stylesTable = xssfReader.getStylesTable();
stylesTable = xssfReader.getStylesTable();
XSSFReader xssfReader = new XSSFReader(container); SharedStrings strings = createSharedStringsTable(xssfReader, container); StylesTable styles = xssfReader.getStylesTable(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData(); StringBuilder text = new StringBuilder(64);
XSSFReader r = new XSSFReader(pkg); ReadOnlySharedStringsTable sst = new ReadOnlySharedStringsTable(pkg); StylesTable styles = r.getStylesTable(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) r.getSheetsData();
ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(container); XSSFReader xssfReader = new XSSFReader(container); StylesTable styles = xssfReader.getStylesTable(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData(); while (iter.hasNext()) {
public XlsxSheetToRowsHandler(XlsxRowCallback callback, XSSFReader xssfReader, ExcelConfiguration configuration) throws Exception { _callback = callback; _configuration = configuration; _sharedStringTable = xssfReader.getSharedStringsTable(); _stylesTable = xssfReader.getStylesTable(); _value = new StringBuilder(); _style = new StyleBuilder(); _rowValues = new ArrayList<String>(); _styles = new ArrayList<Style>(); _rowNumber = -1; _inCell = false; _inFormula = false; }
public XlsxSheetToRowsHandler(XlsxRowCallback callback, XSSFReader xssfReader, ExcelConfiguration configuration) throws Exception { _callback = callback; _configuration = configuration; _sharedStringTable = xssfReader.getSharedStringsTable(); _stylesTable = xssfReader.getStylesTable(); _value = new StringBuilder(); _style = new StyleBuilder(); _rowValues = new ArrayList<String>(); _styles = new ArrayList<Style>(); _rowNumber = -1; _inCell = false; _inFormula = false; }
public XlsxSheetToRowsHandler(XlsxRowCallback callback, XSSFReader xssfReader, ExcelConfiguration configuration) throws Exception { _callback = callback; _configuration = configuration; _sharedStringTable = xssfReader.getSharedStringsTable(); _stylesTable = xssfReader.getStylesTable(); _value = new StringBuilder(); _style = new StyleBuilder(); _rowValues = new ArrayList<String>(); _styles = new ArrayList<Style>(); _rowNumber = -1; _inCell = false; _inFormula = false; }
private void processAll(OPCPackage pkg) throws IOException, OpenXML4JException, SAXException { XSSFReader xssfReader = new XSSFReader(pkg); mStylesTable = xssfReader.getStylesTable(); SharedStringsTable sst = xssfReader.getSharedStringsTable(); XMLReader parser = fetchSheetParser(sst); Iterator<InputStream> sheets = xssfReader.getSheetsData(); while (sheets.hasNext()) { mCurrentRowIndex = 0; mCurrentSheetIndex++; InputStream sheet = sheets.next(); InputSource sheetSource = new InputSource(sheet); parser.parse(sheetSource); sheet.close(); } pkg.close(); }
OPCPackage opcPackage = OPCPackage.open(originalFile, PackageAccess.READ); ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(opcPackage); XSSFReader xssfReader = new XSSFReader(opcPackage); StylesTable styles = xssfReader.getStylesTable(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData(); int index = 0; while (iter.hasNext()) { InputStream stream = iter.next(); String sheetName = iter.getSheetName(); DataFormatter formatter = new DataFormatter(); InputSource sheetSource = new InputSource(stream); SheetToWorkbookSaver saver = new SheetToWorkbookSaver(sheetName); try { XMLReader sheetParser = SAXHelper.newXMLReader(); ContentHandler handler = new XSSFSheetXMLHandler( styles, null, strings, saver, formatter, false); sheetParser.setContentHandler(handler); sheetParser.parse(sheetSource); } catch(ParserConfigurationException e) { throw new RuntimeException("SAX parser appears to be broken - " + e.getMessage()); } stream.close(); // this creates new File descriptors inside storage FileDto partFile = new FileDto("report_".concat(StringUtils.trimToEmpty(sheetName)).concat(".xlsx")); File cloneFile = fileStorage.read(partFile); FileOutputStream cloneFos = new FileOutputStream(cloneFile); saver.getWb().write(cloneFos); cloneFos.close(); }
try { xssfReader = new XSSFReader(container); styles = xssfReader.getStylesTable();
/** * Initiates the processing of the XLS workbook file to CSV. * * @throws IOException If reading the data from the package fails. * @throws SAXException if parsing the XML data fails. */ public void process() throws IOException, OpenXML4JException, SAXException { ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(this.xlsxPackage); XSSFReader xssfReader = new XSSFReader(this.xlsxPackage); StylesTable styles = xssfReader.getStylesTable(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData(); int index = 0; while (iter.hasNext()) { try (InputStream stream = iter.next()) { String sheetName = iter.getSheetName(); this.output.println(); this.output.println(sheetName + " [index=" + index + "]:"); processSheet(styles, strings, new SheetToCSV(), stream); } ++index; } }
/** * Initiates the processing of the XLS workbook file to CSV. * * @throws IOException * @throws OpenXML4JException * @throws ParserConfigurationException * @throws SAXException */ public List<String> process() throws IOException, OpenXML4JException, ParserConfigurationException, SAXException { ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(this.xlsxPackage); XSSFReader xssfReader = new XSSFReader(this.xlsxPackage); StylesTable styles = xssfReader.getStylesTable(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData(); int index = 0; while (iter.hasNext()) { if(blankRowNum == 10)break; InputStream stream = iter.next(); String sheetName = iter.getSheetName(); results.add(ExcelValidator.SHEET_NAME_PREFIX + sheetName); processSheet(styles, strings, new SheetToCSV(), stream); stream.close(); ++index; } return results; }
@Override public TableStyles getTableStyles(SheetDescriptor sheet, IGridRegion tableRegion) { SAXSheetDescriptor saxSheet = (SAXSheetDescriptor) sheet; try (OPCPackage pkg = OPCPackage.open(fileName, PackageAccess.READ)) { XSSFReader r = new XSSFReader(pkg); initializeNeededData(r, pkg); XMLReader parser = SAXHelper.newXMLReader(); StyleIndexHandler styleIndexHandler = new StyleIndexHandler(tableRegion, saxSheet.getIndex()); parser.setContentHandler(styleIndexHandler); try (InputStream sheetData = r.getSheet(saxSheet.getRelationId())) { parser.parse(new InputSource(sheetData)); } return new SAXTableStyles(tableRegion, styleIndexHandler.getCellIndexes(), r.getStylesTable(), getSheetComments(pkg, saxSheet), styleIndexHandler.getFormulas()); } catch (IOException | OpenXML4JException | SAXException | ParserConfigurationException e) { throw new ExcelParseException(e); } }
/** * Create instance * @param inputStream sheet input stream * @param pluginConfig config options * @param writer {@link VectorContainerWriter} for writing values into vectors. * @param managedBuf Workspace buffer. */ public StAXBasedParser(final InputStream inputStream, final ExcelFormatPluginConfig pluginConfig, final VectorContainerWriter writer, final ArrowBuf managedBuf, final HashSet<String> columnsToProject) throws Exception { pkgInputStream = OPCPackage.open(inputStream); this.writer = writer.rootAsStruct(); this.managedBuf = managedBuf; final XSSFReader xssfReader = new XSSFReader(pkgInputStream); // Find the sheet id of the given sheet name in workbook try (final InputStream wbInputStream = xssfReader.getWorkbookData()) { final String sheetId = ExcelUtil.getSheetId(wbInputStream, pluginConfig.sheet); if (sheetId == null) { throw new SheetNotFoundException(); } // Open the InputStream for sheet sheetInputStream = xssfReader.getSheet(sheetId); } // WARNING: XSSFReader can actually return null instances of sst and styles sst = xssfReader.getSharedStringsTable(); styles = checkNotNull(xssfReader.getStylesTable(), "Expected a valid styles table instance"); init(pluginConfig.extractHeader, pluginConfig.hasMergedCells); this.columnsToProject = columnsToProject; }
/** * Initiates the processing of the XLS workbook file to CSV. * * @throws IOException If reading the data from the package fails. * @throws SAXException if parsing the XML data fails. */ public void process(Reader reader, SheetToCSV sheetToCSV) throws IOException, OpenXML4JException, SAXException { ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(sheetToCSV.getOpcPackage()); XSSFReader xssfReader = new XSSFReader(sheetToCSV.getOpcPackage()); StylesTable styles = xssfReader.getStylesTable(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData(); int index = 0; boolean bySheetName = StringUtil.isNotEmpty(reader.sheetName()); while (iter.hasNext()) { try (InputStream stream = iter.next()) { String sheetName = iter.getSheetName(); if (bySheetName && reader.sheetName().equals(sheetName)) { processSheet(styles, strings, sheetToCSV, stream); break; } if (!bySheetName && reader.sheetIndex() == index) { processSheet(styles, strings, sheetToCSV, stream); break; } } ++index; } }
public void init(File f) { try { if (builder.getPassword() != null) { // Based on: https://poi.apache.org/encryption.html POIFSFileSystem poifs = new POIFSFileSystem(f); EncryptionInfo info = new EncryptionInfo(poifs); Decryptor d = Decryptor.getInstance(info); d.verifyPassword(builder.getPassword()); pkg = OPCPackage.open(d.getDataStream(poifs)); } else { pkg = OPCPackage.open(f); } XSSFReader reader = new XSSFReader(pkg); SharedStringsTable sst = reader.getSharedStringsTable(); StylesTable styles = reader.getStylesTable(); loadSheets(reader, sst, styles, builder.getRowCacheSize()); } catch (IOException e) { throw new OpenException("Failed to open file", e); } catch (OpenXML4JException | XMLStreamException e) { throw new ReadException("Unable to read workbook", e); } catch (GeneralSecurityException e) { throw new ReadException("Unable to read workbook - Decryption failed", e); } }
public void init(File f) { try { if (builder.getPassword() != null) { // Based on: https://poi.apache.org/encryption.html POIFSFileSystem poifs = new POIFSFileSystem(f); EncryptionInfo info = new EncryptionInfo(poifs); Decryptor d = Decryptor.getInstance(info); d.verifyPassword(builder.getPassword()); pkg = OPCPackage.open(d.getDataStream(poifs)); } else { pkg = OPCPackage.open(f); } XSSFReader reader = new XSSFReader(pkg); SharedStringsTable sst = reader.getSharedStringsTable(); StylesTable styles = reader.getStylesTable(); loadSheets(reader, sst, styles, builder.getRowCacheSize()); } catch (IOException e) { throw new OpenException("Failed to open file", e); } catch (OpenXML4JException | XMLStreamException e) { throw new ReadException("Unable to read workbook", e); } catch (GeneralSecurityException e) { throw new ReadException("Unable to read workbook - Decryption failed", e); } }