List of usage examples for org.apache.poi.openxml4j.opc OPCPackage open
public static OPCPackage open(File file, PackageAccess access) throws InvalidFormatException
From source file:com.googlecode.sqlsheet.stream.XlsxSheetIterator.java
License:Apache License
@Override protected void postConstruct() throws SQLException { try {//from w ww.j a v a 2 s. c o m //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.googlecode.sqlsheet.XLSX2CSV.java
License:Apache License
public static void main(String[] args) throws Exception { int minColumns = -1; // The package open is instantaneous, as it should be. OPCPackage p = OPCPackage.open(ClassLoader.getSystemResource("fail.xlsx").getFile(), PackageAccess.READ); //OPCPackage p = OPCPackage.open("d:/temp/sxssf.xlsx", PackageAccess.READ); XLSX2CSV xlsx2csv = new XLSX2CSV(p, System.out, minColumns); xlsx2csv.process();/* w ww.ja v a2 s . c om*/ }
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// w w w.ja v a 2 s. c o 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.kplot.web.data.WorkbookFactory.java
License:Apache License
/** * Creates the appropriate HSSFWorkbook / XSSFWorkbook from * the given File, which must exist and be readable, and * may be password protected/*from w ww. jav a 2 s . co m*/ * <p>Note that in order to properly release resources the * Workbook should be closed after use. * * @param file The file to read data from. * @param password The password that should be used or null if no password is necessary. * @param readOnly If the Workbook should be opened in read-only mode to avoid writing back * changes when the document is closed. * * @return The created Workbook * * @throws IOException if an error occurs while reading the data * @throws InvalidFormatException if the contents of the file cannot be parsed into a {@link Workbook} * @throws EncryptedDocumentException If the wrong password is given for a protected file * @throws EmptyFileException If an empty stream is given */ public static Workbook create(File file, String password, boolean readOnly) throws IOException, InvalidFormatException, EncryptedDocumentException { if (!file.exists()) { throw new FileNotFoundException(file.toString()); } try { System.out.println("NPOIFSFileSystem"); NPOIFSFileSystem fs = new NPOIFSFileSystem(file, readOnly); try { return create(fs, password); } catch (RuntimeException e) { System.out.println("ensure that the file-handle is closed again"); fs.close(); throw e; } } catch (OfficeXmlFileException e) { System.out.println("opening as .xls failed => try opening as .xlsx"); System.out.println("OPCPackage"); OPCPackage pkg = OPCPackage.open(file, readOnly ? PackageAccess.READ : PackageAccess.READ_WRITE); try { return new XSSFWorkbook(pkg); } catch (IOException ioe) { // ensure that file handles are closed (use revert() to not re-write the file) pkg.revert(); //pkg.close(); // rethrow exception throw ioe; } catch (RuntimeException ioe) { // ensure that file handles are closed (use revert() to not re-write the file) pkg.revert(); //pkg.close(); // rethrow exception throw ioe; } } }
From source file:com.lfwer.common.XLSX2CSV.java
License:Apache License
public static void main(String[] args) throws Exception { // if (args.length < 1) { // System.err.println("Use:"); // System.err.println(" XLSX2CSV <xlsx file> [min columns]"); // return;//from w ww. j a v a 2 s . c o m // } // File xlsxFile = new File(args[0]); File xlsxFile = new File("C:/Users/sks/Desktop/?20170627.xlsx"); if (!xlsxFile.exists()) { System.err.println("Not found or not a file: " + xlsxFile.getPath()); return; } int minColumns = -1; if (args.length >= 2) minColumns = Integer.parseInt(args[1]); // The package open is instantaneous, as it should be. OPCPackage p = OPCPackage.open(xlsxFile.getPath(), PackageAccess.READ); XLSX2CSV xlsx2csv = new XLSX2CSV(p, System.out, minColumns); xlsx2csv.process(); p.close(); }
From source file:com.pay.poss.util.PoiUtil.java
License:Apache License
/** * ?Excel/*from w ww. ja v a 2s . co m*/ * * @param path * * @param sheetName * sheet?? * @param minColumns * * @return * @throws SAXException * @throws ParserConfigurationException * @throws OpenXML4JException * @throws IOException */ public static List<String[]> readerExcel(String path, String sheetName, int minColumns) throws IOException, OpenXML4JException, ParserConfigurationException, SAXException { OPCPackage p = OPCPackage.open(path, PackageAccess.READ); PoiUtil xlsx2csv = new PoiUtil(p, System.out, sheetName, minColumns); List<String[]> list = xlsx2csv.process(); p.close(); return list; }
From source file:com.sonicle.webtop.contacts.io.input.ContactExcelFileReader.java
License:Open Source License
private void readXlsxContacts(File file, BeanHandler beanHandler) throws IOException, FileReaderException { OPCPackage opc = null;/*from w w w . ja va 2 s .co m*/ HashMap<String, Integer> columnIndexes = listXlsxColumnIndexes(file); XlsRowHandler rowHandler = new XlsRowHandler(this, columnIndexes, beanHandler); try { opc = OPCPackage.open(file, PackageAccess.READ); XSSFReader reader = new XSSFReader(opc); ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(opc); StylesTable styles = reader.getStylesTable(); XlsxRowsHandler rowsHandler = null; XSSFReader.SheetIterator sit = (XSSFReader.SheetIterator) reader.getSheetsData(); while (sit.hasNext()) { InputStream is = null; try { is = sit.next(); if (StringUtils.equals(sit.getSheetName(), sheet)) { XMLReader xmlReader = SAXHelper.newXMLReader(); rowsHandler = new XlsxRowsHandler(is, headersRow, firstDataRow, lastDataRow, rowHandler); ContentHandler xhandler = new XSSFSheetXMLHandler(styles, null, strings, rowsHandler, fmt, false); xmlReader.setContentHandler(xhandler); xmlReader.parse(new InputSource(is)); } } catch (SAXException | ParserConfigurationException ex) { throw new FileReaderException(ex, "Error processing file content"); } catch (NullPointerException ex) { // Thrown when stream is forcibly closed. Simply ignore this! } finally { IOUtils.closeQuietly(is); } if (rowsHandler != null) break; } } catch (OpenXML4JException | SAXException ex) { throw new FileReaderException(ex, "Error opening file"); } finally { IOUtils.closeQuietly(opc); } }
From source file:com.sonicle.webtop.core.io.input.ExcelFileReader.java
License:Open Source License
public List<String> listXlsxSheets(File file) throws IOException, FileReaderException { ArrayList<String> sheets = new ArrayList<>(); OPCPackage opc = null;/*from w ww .j a v a2 s . c o m*/ try { opc = OPCPackage.open(file, PackageAccess.READ); XSSFReader reader = new XSSFReader(opc); XSSFReader.SheetIterator sit = (XSSFReader.SheetIterator) reader.getSheetsData(); while (sit.hasNext()) { InputStream is = null; try { is = sit.next(); String name = sit.getSheetName(); if (name != null) sheets.add(name); } finally { IOUtils.closeQuietly(is); } } } catch (OpenXML4JException ex) { throw new FileReaderException(ex, "Error opening file"); } finally { IOUtils.closeQuietly(opc); } return sheets; }
From source file:com.sonicle.webtop.core.io.input.ExcelFileReader.java
License:Open Source License
public HashMap<String, String> listXlsxColumnNames(File file) throws IOException, FileReaderException { OPCPackage opc = null;/*ww w . ja va2s .c om*/ try { opc = OPCPackage.open(file, PackageAccess.READ); XSSFReader reader = new XSSFReader(opc); ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(opc); StylesTable styles = reader.getStylesTable(); XlsxColumnsHandler columnsHandler = null; XSSFReader.SheetIterator sit = (XSSFReader.SheetIterator) reader.getSheetsData(); while (sit.hasNext()) { InputStream is = null; try { is = sit.next(); if (StringUtils.equals(sit.getSheetName(), sheet)) { XMLReader xmlReader = SAXHelper.newXMLReader(); columnsHandler = new XlsxColumnsHandler(is, headersRow, firstDataRow, lastDataRow); ContentHandler handler = new XSSFSheetXMLHandler(styles, null, strings, columnsHandler, fmt, false); xmlReader.setContentHandler(handler); xmlReader.parse(new InputSource(is)); } } catch (SAXException | ParserConfigurationException ex) { throw new FileReaderException(ex, "Error processing file content"); } catch (NullPointerException ex) { // Thrown when stream is forcibly closed. Simply ignore this! } finally { IOUtils.closeQuietly(is); } if (columnsHandler != null) break; } return columnsHandler.columnNames; } catch (OpenXML4JException | SAXException ex) { throw new FileReaderException(ex, "Error opening file"); } finally { IOUtils.closeQuietly(opc); } }
From source file:com.sonicle.webtop.core.io.input.ExcelFileReader.java
License:Open Source License
public HashMap<String, Integer> listXlsxColumnIndexes(File file) throws IOException, FileReaderException { OPCPackage opc = null;/*from ww w . j av a 2s. c om*/ try { opc = OPCPackage.open(file, PackageAccess.READ); XSSFReader reader = new XSSFReader(opc); ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(opc); StylesTable styles = reader.getStylesTable(); XlsxColumnsHandler columnsHandler = null; XSSFReader.SheetIterator sit = (XSSFReader.SheetIterator) reader.getSheetsData(); while (sit.hasNext()) { InputStream is = null; try { is = sit.next(); if (StringUtils.equals(sit.getSheetName(), sheet)) { XMLReader xmlReader = SAXHelper.newXMLReader(); columnsHandler = new XlsxColumnsHandler(is, headersRow, firstDataRow, lastDataRow); ContentHandler handler = new XSSFSheetXMLHandler(styles, null, strings, columnsHandler, fmt, false); xmlReader.setContentHandler(handler); xmlReader.parse(new InputSource(is)); } } catch (SAXException | ParserConfigurationException ex) { throw new FileReaderException(ex, "Error processing file content"); } catch (NullPointerException ex) { // Thrown when stream is forcibly closed. Simply ignore this! } finally { IOUtils.closeQuietly(is); } if (columnsHandler != null) break; } return columnsHandler.columnIndexes; } catch (OpenXML4JException | SAXException ex) { throw new FileReaderException(ex, "Error opening file"); } finally { IOUtils.closeQuietly(opc); } }