All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.nomou.spreadsheet.msexcel.OpenXMLSpreadsheetParserFactory Maven / Gradle / Ivy

package com.github.nomou.spreadsheet.msexcel;

import com.github.nomou.spreadsheet.Spreadsheet;
import com.github.nomou.spreadsheet.SpreadsheetException;
import com.github.nomou.spreadsheet.SpreadsheetParser;
import com.github.nomou.spreadsheet.spi.SpreadsheetParserFactory;

import java.io.InputStream;

/**
 * Spreadsheet parser factory for Microsoft Excel 2007+.
 *
 * @author vacoor
 * @since 1.0
 */
public class OpenXMLSpreadsheetParserFactory implements SpreadsheetParserFactory {
    private static final boolean POI_OOXML_PRESENT = SpreadsheetImplUtils.isPresent(SpreadsheetImplUtils.SXSSF_STREAMING_CLASS_NAME, SpreadsheetImplUtils.OOXML_CLASS_NAME);

    /**
     * Microsoft Excel 2007+(*.xlsx) - OPEN-XML.
     * 

* The first 4 bytes of an OOXML file, used in detection */ private static final byte[] OOXML_FILE_HEADER = new byte[]{0x50, 0x4b, 0x03, 0x04}; public static final Spreadsheet.Format OOXML = new Spreadsheet.Format("Microsoft Excel 2007+", OOXML_FILE_HEADER, "xlsx"); @Override public Spreadsheet.Format[] getSupportedFormats() { return new Spreadsheet.Format[]{OOXML}; } @Override public SpreadsheetParser create(final InputStream in) throws SpreadsheetException { if (POI_OOXML_PRESENT) { return new OpenXMLSpreadsheetParser(in); } throw new SpreadsheetException(String.format("POI '%s' or '%s' missing", SpreadsheetImplUtils.SXSSF_STREAMING_CLASS_NAME, SpreadsheetImplUtils.OOXML_CLASS_NAME)); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy