class ImporterSpreadsheetExcel extends AbstractImporterSpreadsheet {

    private int sheetIndex = 0;

    @Override
    public SheetParser createParserWithoutHeaders() throws IOException {
        return createParser(false);
    }

    @Override
    public SheetParser createParser() throws IOException {
        boolean withFirstRecordAsHeader = generalConfig.getMode() == SpreadsheetGeneralConfiguration.Mode.NODES_TABLE ||
            generalConfig.getMode() == SpreadsheetGeneralConfiguration.Mode.EDGES_TABLE;
        return createParser(withFirstRecordAsHeader);
    }

    private SheetParser createParser(boolean withFirstRecordAsHeader) throws IOException {
        try {
            boolean readOnly = true;
            Workbook workbook = WorkbookFactory.create(file, null, readOnly);
            Sheet sheet = workbook.getSheetAt(sheetIndex);

            return new ExcelSheetParser(sheet, withFirstRecordAsHeader);
        } catch (Exception ex) {
            //Control and report old excel files are unsupported:
            //Control and report excel file blocked by another process (normally excel itself):

            if (report != null) {
                SpreadsheetUtils.logError(report, ex.getMessage(), null);
                return EmptySheet.INSTANCE;
            } else {
                return new ErrorSheet(ex.getMessage());
            }
        }
    }

    public String[] getAvailableSheetNames() {<FILL_FUNCTION_BODY>}

    public int getSheetIndex() {
        return sheetIndex;
    }

    public void setSheetIndex(int sheetIndex) {
        this.sheetIndex = sheetIndex;
    }
}

        try (Workbook workbook = WorkbookFactory.create(file)) {
            int length = workbook.getNumberOfSheets();

            String[] names = new String[length];
            for (int i = 0; i < length; i++) {
                names[i] = workbook.getSheetName(i);
            }

            return names;
        } catch (Exception ex) {
            Logger.getLogger("").log(Level.SEVERE, ex.getMessage());
            return new String[] {"Error"};
        }
    
<methods>public non-sealed void <init>() ,public boolean cancel() ,public abstract org.gephi.io.importer.plugin.file.spreadsheet.sheet.SheetParser createParser() throws java.io.IOException,public abstract org.gephi.io.importer.plugin.file.spreadsheet.sheet.SheetParser createParserWithoutHeaders() throws java.io.IOException,public boolean execute(org.gephi.io.importer.api.ContainerLoader) ,public Class#RAW getColumnClass(java.lang.String) ,public Map<java.lang.String,Class#RAW> getColumnsClasses() ,public org.gephi.io.importer.api.ContainerLoader getContainer() ,public java.io.File getFile() ,public List<org.gephi.io.importer.plugin.file.spreadsheet.sheet.SheetRow> getFirstRows(int) throws java.io.IOException,public List<org.gephi.io.importer.plugin.file.spreadsheet.sheet.SheetRow> getFirstRows(org.gephi.io.importer.plugin.file.spreadsheet.sheet.SheetParser, int) throws java.io.IOException,public Map<java.lang.String,java.lang.Integer> getHeadersMap() throws java.io.IOException,public org.gephi.io.importer.plugin.file.spreadsheet.process.SpreadsheetGeneralConfiguration.Mode getMode() ,public org.gephi.io.importer.api.Report getReport() ,public TimeRepresentation getTimeRepresentation() ,public DateTimeZone getTimeZone() ,public void refreshAutoDetections() ,public void setColumnClass(java.lang.String, Class#RAW) ,public void setColumnsClasses(Map<java.lang.String,Class#RAW>) ,public void setFile(java.io.File) ,public void setMode(org.gephi.io.importer.plugin.file.spreadsheet.process.SpreadsheetGeneralConfiguration.Mode) ,public void setProgressTicket(org.gephi.utils.progress.ProgressTicket) ,public void setReader(java.io.Reader) ,public void setTimeRepresentation(TimeRepresentation) ,public void setTimeZone(DateTimeZone) <variables>private static final int MAX_ROWS_TO_ANALYZE_COLUMN_TYPES,protected boolean cancel,protected org.gephi.io.importer.api.ContainerLoader container,protected java.io.File file,protected final org.gephi.io.importer.plugin.file.spreadsheet.process.SpreadsheetGeneralConfiguration generalConfig,protected org.gephi.io.importer.plugin.file.spreadsheet.process.AbstractImportProcess importer,protected org.gephi.utils.progress.ProgressTicket progressTicket,protected org.gephi.io.importer.api.Report report