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:XLSX2CSV.java

License:Apache License

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();//from  w w  w .java 2s. c om
        ++index;
    }
    close();
}

From source file:adams.data.io.input.ExcelStreamingSpreadSheetReader.java

License:Open Source License

/**
 * Determines the number of sheets in the file.
 * /* www. j a v  a2 s  . c  o  m*/
 * @param file   the file to inspec
 * @return      the number of sheets
 * @throws Exception   if reading of file fails
 */
protected int getSheetCount(File file) throws Exception {
    int result;
    OPCPackage pkg;
    XSSFReader reader;
    Iterator<InputStream> sheets;
    InputStream sheet;

    pkg = OPCPackage.open(file.getAbsolutePath(), PackageAccess.READ);
    reader = new XSSFReader(pkg);
    sheets = reader.getSheetsData();
    result = 0;
    while (sheets.hasNext()) {
        if (m_Stopped)
            break;
        sheet = sheets.next();
        sheet.close();
        result++;
    }
    pkg.close();

    return result;
}

From source file:adams.data.io.input.ExcelStreamingSpreadSheetReader.java

License:Open Source License

/**
 * Reads the spreadsheet content from the specified file.
 *
 * @param file   the file to read from/*from w w w  .j a v  a  2  s . c  o  m*/
 * @return      the spreadsheets or null in case of an error
 */
@Override
protected List<SpreadSheet> doReadRange(File file) {
    List<SpreadSheet> result;
    int count;
    OPCPackage pkg;
    XSSFReader reader;
    SharedStringsTable sst;
    XMLReader parser;
    XSSFReader.SheetIterator sheets;
    InputStream sheet;
    SpreadSheet spsheet;
    InputSource sheetSource;
    HashSet<Integer> indices;
    List<String> header;
    Row rowOld;
    Row row;
    int i;

    result = new ArrayList<>();

    try {
        m_SheetRange.setMax(getSheetCount(file));
        indices = new HashSet<>(Utils.toList(m_SheetRange.getIntIndices()));
        pkg = OPCPackage.open(file.getAbsolutePath(), PackageAccess.READ);
        reader = new XSSFReader(pkg);
        sst = reader.getSharedStringsTable();
        sheets = (XSSFReader.SheetIterator) reader.getSheetsData();
        count = 0;
        while (sheets.hasNext()) {
            if (m_Stopped)
                break;
            sheet = null;
            try {
                sheet = sheets.next();
                if (indices.contains(count)) {
                    spsheet = m_SpreadSheetType.newInstance();
                    spsheet.setDataRowClass(m_DataRowType.getClass());
                    spsheet.setName(sheets.getSheetName());
                    parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
                    m_Handler = new SheetHandler(this, spsheet, sst);
                    parser.setContentHandler(m_Handler);
                    sheetSource = new InputSource(sheet);
                    parser.parse(sheetSource);
                    // fix header?
                    if (!getCustomColumnHeaders().trim().isEmpty()) {
                        header = SpreadSheetUtils.createHeader(spsheet.getColumnCount(),
                                getCustomColumnHeaders());
                        row = spsheet.getHeaderRow();
                        for (i = 0; i < header.size() && i < spsheet.getColumnCount(); i++)
                            row.getCell(i).setContent(header.get(i));
                    }
                    result.add(spsheet);
                    // missing types?
                    if (m_Handler.getUnknownCellTypes().size() > 0) {
                        getLogger().severe("Unknown cell types: " + m_Handler.getUnknownCellTypes());
                        for (String type : m_Handler.getUnknownCellTypes())
                            getLogger().severe("- cell type '" + type + "': "
                                    + m_Handler.getUnknownCellTypesExamples().get(type));
                    }
                    if (m_Handler.getUnknownCellStrings().size() > 0) {
                        getLogger().severe("Unknown cell strings: " + m_Handler.getUnknownCellStrings());
                        for (String str : m_Handler.getUnknownCellStrings())
                            getLogger().severe("- cell string '" + str + "': "
                                    + m_Handler.getUnknownCellStringsExamples().get(str));
                    }
                }
            } catch (Exception e) {
                getLogger().log(Level.SEVERE, "Failed to process sheet:", e);
            }

            FileUtils.closeQuietly(sheet);

            count++;
        }
        pkg.close();
    } catch (ParseStopException e) {
        getLogger().severe("Parsing stopped!");
        result = null;
        m_LastError = "Failed to read range '" + m_SheetRange + "' from file '" + file + "'!\n"
                + Utils.throwableToString(e);
    } catch (Exception e) {
        getLogger().log(Level.SEVERE, "Failed to read spreadsheet:", e);
    }

    m_Handler = null;

    return result;
}

From source file:br.com.mapfre.lv.jobmanager.XLSX2CSV.java

License:Apache License

/**
 * Initiates the processing of the XLS workbook file to CSV.
 *
 * @throws IOException/* w w w .  j  av a  2 s.c  o m*/
 * @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;
    }
}

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.  ja  va  2  s  .c o m*/
    sheet2.close();
}

From source file:ch.admin.searchreplace.SearchReplaceTerms.java

License:Apache License

private static HashMap<String, String> readSearchReplaceTerms(String input) throws Exception {
    HashMap<String, String> terms = new HashMap<String, String>();

    // The package open is instantaneous, as it should be.
    OPCPackage xlsxPackage = OPCPackage.open(input, PackageAccess.READ);
    ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(xlsxPackage);
    XSSFReader xssfReader = new XSSFReader(xlsxPackage);
    StylesTable styles = xssfReader.getStylesTable();
    XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData();

    InputStream stream = iter.next();
    String sheetName = iter.getSheetName();
    System.out.println(sheetName);

    InputSource sheetSource = new InputSource(stream);
    SAXParserFactory saxFactory = SAXParserFactory.newInstance();
    SAXParser saxParser = saxFactory.newSAXParser();
    XMLReader sheetParser = saxParser.getXMLReader();
    ContentHandler handler = new MyXSSFSheetHandler(styles, strings, terms);
    sheetParser.setContentHandler(handler);
    sheetParser.parse(sheetSource);/*  w  w  w  .  j a  va 2s  .c o  m*/

    stream.close();

    return (terms);

}

From source file:ch.admin.searchreplace.XLSX2CSV.java

License:Apache License

/**
 * Initiates the processing of the XLS workbook file to CSV.
 * //from w  ww .j a v a 2  s  .  c om
 * @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;
        break;
    }
}

From source file:cn.afterturn.easypoi.excel.imports.sax.SaxReadExcel.java

License:Apache License

private <T> List<T> readExcel(OPCPackage opcPackage, Class<?> pojoClass, ImportParams params,
        ISaxRowRead rowRead, IReadHandler handler) {
    try {//  w w w .jav  a 2 s .  c o  m
        XSSFReader xssfReader = new XSSFReader(opcPackage);
        SharedStringsTable sharedStringsTable = xssfReader.getSharedStringsTable();
        StylesTable stylesTable = xssfReader.getStylesTable();
        if (rowRead == null) {
            rowRead = new SaxRowRead(pojoClass, params, handler);
        }
        XMLReader parser = fetchSheetParser(sharedStringsTable, stylesTable, rowRead);
        Iterator<InputStream> sheets = xssfReader.getSheetsData();
        int sheetIndex = 0;
        while (sheets.hasNext() && sheetIndex < params.getSheetNum() + params.getStartSheetIndex()) {
            if (sheetIndex < params.getStartSheetIndex()) {
                sheets.next();
            } else {
                InputStream sheet = sheets.next();
                InputSource sheetSource = new InputSource(sheet);
                parser.parse(sheetSource);
                sheet.close();
            }
            sheetIndex++;

        }
        if (handler != null) {
            handler.doAfterAll();
        }
        return rowRead.getList();
    } catch (Exception e) {
        LOGGER.error(e.getMessage(), e);
        throw new ExcelImportException("SAX?");
    }
}

From source file:cn.xiaozhi.spider.util.XLSXCovertCSVReader.java

License:Apache License

/**
 * ??? /*from  w  w  w  .ja v  a  2  s  .  c  om*/
 *
 * @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);
    List<String[]> list = null;
    StylesTable styles = xssfReader.getStylesTable();
    XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) xssfReader.getSheetsData();
    int index = 0;
    while (iter.hasNext()) {
        InputStream stream = iter.next();
        String sheetNameTemp = iter.getSheetName();
        if (this.sheetName.equals(sheetNameTemp)) {
            list = processSheet(styles, strings, stream);
            stream.close();
            ++index;
        }
    }
    return list;
}

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);/*  ww w . jav  a  2 s . c o  m*/
    sheet2.close();
}