Example usage for org.apache.poi.xssf.eventusermodel XSSFReader XSSFReader

List of usage examples for org.apache.poi.xssf.eventusermodel XSSFReader XSSFReader

Introduction

In this page you can find the example usage for org.apache.poi.xssf.eventusermodel XSSFReader XSSFReader.

Prototype

public XSSFReader(OPCPackage pkg) throws IOException, OpenXML4JException 

Source Link

Document

Creates a new XSSFReader, for the given package

Usage

From source file:com.anthill.excelcompare.main.impl.FromHowTo.java

License:Apache License

public void processAllSheets(String filename) throws Exception {
    OPCPackage pkg = OPCPackage.open(filename);
    XSSFReader r = new XSSFReader(pkg);
    SharedStringsTable sst = r.getSharedStringsTable();

    XMLReader parser = fetchSheetParser(sst);

    Iterator<InputStream> sheets = r.getSheetsData();
    while (sheets.hasNext()) {
        System.out.println("Processing new sheet:\n");
        InputStream sheet = sheets.next();
        InputSource sheetSource = new InputSource(sheet);
        parser.parse(sheetSource);//from ww  w . j a v a 2 s .co  m
        sheet.close();
        System.out.println("");
    }
}

From source file:com.bstek.dorado.importer.policy.impl.XLSX2CSV.java

License:Apache License

/**
 * Initiates the processing of the XLS workbook file to CSV.
 * //from www. ja v  a 2 s .com
 * @throws IOException
 * @throws OpenXML4JException
 * @throws ParserConfigurationException
 * @throws SAXException
 */
public void 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()) {
        InputStream stream = iter.next();
        String sheetName = iter.getSheetName();
        this.output.println();
        this.output.println(sheetName + " [index=" + index + "]:");
        processSheet(styles, strings, stream);
        stream.close();
        ++index;
    }
    close();
}

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

License:Apache License

@Async
public void importExcel2007(final User user, final InputStream is) {

    ExcelDataService proxy = ((ExcelDataService) AopContext.currentProxy());

    BufferedInputStream bis = null;
    try {/*w w  w  .j a va  2 s . c  o  m*/
        long beginTime = System.currentTimeMillis();

        List<ExcelData> dataList = Lists.newArrayList();

        bis = new BufferedInputStream(is);
        OPCPackage pkg = OPCPackage.open(bis);
        XSSFReader r = new XSSFReader(pkg);

        XMLReader parser = XMLReaderFactory.createXMLReader();
        ContentHandler handler = new Excel2007ImportSheetHandler(proxy, dataList, batchSize);
        parser.setContentHandler(handler);

        Iterator<InputStream> sheets = r.getSheetsData();
        while (sheets.hasNext()) {
            InputStream sheet = null;
            try {
                sheet = sheets.next();
                InputSource sheetSource = new InputSource(sheet);
                parser.parse(sheetSource);
            } catch (Exception e) {
                throw e;
            } finally {
                IOUtils.closeQuietly(sheet);
            }
        }

        //??batchSize?
        if (dataList.size() > 0) {
            proxy.doBatchSave(dataList);
        }

        long endTime = System.currentTimeMillis();
        Map<String, Object> context = Maps.newHashMap();
        context.put("seconds", (endTime - beginTime) / 1000);
        notificationApi.notify(user.getId(), "excelImportSuccess", context);
    } catch (Exception e) {
        log.error("excel import error", e);
        Map<String, Object> context = Maps.newHashMap();
        context.put("error", e.getMessage());
        notificationApi.notify(user.getId(), "excelImportError", context);
    } finally {
        IOUtils.closeQuietly(bis);
    }
}

From source file:com.dhenton9000.excel.ExcelParser.java

public SheetResults parse(InputStream inputStream) throws Exception {

    OPCPackage pkg = OPCPackage.open(inputStream);
    XSSFReader reader = new XSSFReader(pkg);
    this.sst = reader.getSharedStringsTable();

    SAXParserFactory saxFactory = SAXParserFactory.newInstance();
    SAXParser saxParser = saxFactory.newSAXParser();
    XMLReader parser = saxParser.getXMLReader();
    parser.setContentHandler(this);

    // There should only be one sheet
    final Iterator<InputStream> it = reader.getSheetsData();
    final InputStream sheet = it.next();

    final InputSource sheetSource = new InputSource(sheet);
    parser.parse(sheetSource);//from  ww w .  j a v  a2 s  . c om
    sheet.close();

    return getSheetResults();

}

From source file:com.github.poi.LoadPasswordProtectedXlsxStreaming.java

License:Apache License

public static void main(String[] args) {
    try {/*from  ww w  .j av a  2  s  .c  om*/
        if (args.length != 2) {
            throw new Exception("Expected 2 params: filename and password");
        }
        XlsxUtils.checkTempFiles();
        String filename = args[0];
        String password = args[1];
        try (FileInputStream fis = new FileInputStream(filename);
                InputStream unencryptedStream = XlsxUtils.decrypt(fis, password);
                AesZipFileZipEntrySource source = AesZipFileZipEntrySource
                        .createZipEntrySource(unencryptedStream);
                OPCPackage pkg = OPCPackage.open(source)) {
            XSSFReader reader = new XSSFReader(pkg);
            SheetIterator iter = (SheetIterator) reader.getSheetsData();
            int count = 0;
            while (iter.hasNext()) {
                iter.next();
                count++;
            }
            System.out.println("sheet count: " + count);
        }
        XlsxUtils.checkTempFiles();
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

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

License:Apache License

@Override
protected void postConstruct() throws SQLException {
    try {/*  w  w  w. j av a 2  s . c om*/
        //Open and pre process XLSX file
        xlsxPackage = OPCPackage.open(getFileName().getPath(), PackageAccess.READ);
        strings = new ReadOnlySharedStringsTable(this.xlsxPackage);
        XSSFReader xssfReader = new XSSFReader(this.xlsxPackage);
        styles = xssfReader.getStylesTable();
        //Find appropriate sheet
        XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData();
        while (iter.hasNext()) {
            InputStream stream = iter.next();
            String currentSheetName = iter.getSheetName();
            if (currentSheetName.equalsIgnoreCase(getSheetName())
                    || ("\"" + currentSheetName + "\"").equalsIgnoreCase(getSheetName())) {
                handler = new XSSFSheetEventHandler(styles, strings);
                XMLInputFactory factory = XMLInputFactory.newInstance();
                reader = factory.createXMLEventReader(stream);
                //Start sheet processing
                while (reader.hasNext() && getCurrentSheetRowIndex() == 0) {
                    processNextEvent();
                }
                processNextRecords();
            }
        }
    } catch (Exception e) {
        throw new SQLException(e.getMessage(), e);
    }
}

From source file:com.jkoolcloud.tnt4j.streams.inputs.ExcelSXSSFRowStream.java

License:Apache License

/**
 * Reads XSSF (XLXS) format excel file using Apache POI streaming SXSSF API.
 *
 * @param xlsxFile//from www  .  j a  v  a 2 s  .  co  m
 *            excel XSSF format file to read
 *
 * @throws IOException
 *             if excel file or workbook can't be read
 * @throws SAXException
 *             if file contained XML reading fails
 * @throws OpenXML4JException
 *             if file contained XML reading fails
 */
protected void readXLXS(File xlsxFile) throws IOException, SAXException, OpenXML4JException {
    try (OPCPackage xlsxPackage = OPCPackage.open(xlsxFile, PackageAccess.READ)) {
        ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(xlsxPackage);
        XSSFReader xssfReader = new XSSFReader(xlsxPackage);
        StylesTable styles = xssfReader.getStylesTable();
        XSSFReader.SheetIterator sIter = (XSSFReader.SheetIterator) xssfReader.getSheetsData();
        while (sIter.hasNext()) {
            try (InputStream sStream = sIter.next()) {
                String sheetName = sIter.getSheetName();
                boolean match = sheetNameMatcher == null || sheetNameMatcher.matcher(sheetName).matches();
                if (!match) {
                    continue;
                }

                SXSSFSheet sheet = new SXSSFSheet(new SXSSFWorkbook(), null);
                processSXSSFSheet(styles, strings, new XLSXSheetContentHandler(this, sheet), sStream);
            }
        }
    }
}

From source file:com.lfwer.common.XLSX2CSV.java

License:Apache License

/**
 * Initiates the processing of the XLS workbook file to CSV.
 *
 * @throws IOException//ww  w .j a v a  2 s . c o m
 *             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()) {
        InputStream stream = iter.next();
        String sheetName = iter.getSheetName();
        this.output.println();
        this.output.println(sheetName + " [index=" + index + "]:");
        processSheet(styles, strings, new SheetToCSV(), stream);
        stream.close();
        ++index;
    }
}

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);//  ww  w. j a v a 2  s.  c  om
    sheet2.close();
}

From source file:com.ljh.excel.parser.FromHowTo.java

License:Apache License

public static void processAllSheets(String filename) throws Exception {
    OPCPackage pkg = OPCPackage.open(filename);
    XSSFReader r = new XSSFReader(pkg);
    SharedStringsTable sst = r.getSharedStringsTable();

    XMLReader parser = fetchSheetParser(sst);

    Iterator<InputStream> sheets = r.getSheetsData();
    while (sheets.hasNext()) {
        System.out.println("Processing new sheet:\n");
        InputStream sheet = sheets.next();
        InputSource sheetSource = new InputSource(sheet);
        parser.parse(sheetSource);//www  . ja  v a  2s .c om
        sheet.close();
        System.out.println("");
    }
}