List of usage examples for org.apache.poi.xssf.eventusermodel XSSFReader getSharedStringsTable
public SharedStringsTable getSharedStringsTable() throws IOException, InvalidFormatException
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// w ww . j a v a2 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: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);/*ww w . j ava 2 s . co m*/ sheet2.close(); }
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 {/*from ww w .j a v a 2 s. co 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: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 www .jav a 2 s . co m*/ sheet2.close(); }
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);/* w w w . j a v a2s . c o m*/ sheet.close(); System.out.println(""); } }
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 w w w . j a v a 2 s . c o m sheet.close(); return getSheetResults(); }
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 w w w . j a va 2 s . co m*/ 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);//w ww. j a v a 2 s . c o m sheet.close(); System.out.println(""); } }
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);/* ww w . j a v a 2 s .c om*/ sheet2.close(); }
From source file:com.qihang.winter.poi.excel.imports.sax.SaxReadExcel.java
License:Apache License
private <T> List<T> readExcel(OPCPackage opcPackage, Class<?> pojoClass, com.qihang.winter.poi.excel.entity.ImportParams params, ISaxRowRead rowRead, com.qihang.winter.poi.handler.inter.IExcelReadRowHanlder hanlder) { try {/*from w w w. ja va 2 s . c om*/ XSSFReader xssfReader = new XSSFReader(opcPackage); SharedStringsTable sst = xssfReader.getSharedStringsTable(); if (rowRead == null) { rowRead = new com.qihang.winter.poi.excel.imports.sax.parse.SaxRowRead(pojoClass, params, hanlder); } XMLReader parser = fetchSheetParser(sst, rowRead); Iterator<InputStream> sheets = xssfReader.getSheetsData(); int sheetIndex = 0; while (sheets.hasNext() && sheetIndex < params.getSheetNum()) { sheetIndex++; InputStream sheet = sheets.next(); InputSource sheetSource = new InputSource(sheet); parser.parse(sheetSource); sheet.close(); } return rowRead.getList(); } catch (Exception e) { LOGGER.error(e.getMessage(), e); throw new com.qihang.winter.poi.exception.excel.ExcelImportException("SAX?"); } }