Example usage for org.apache.poi.ss.usermodel Sheet getSheetName

List of usage examples for org.apache.poi.ss.usermodel Sheet getSheetName

Introduction

In this page you can find the example usage for org.apache.poi.ss.usermodel Sheet getSheetName.

Prototype

String getSheetName();

Source Link

Document

Returns the name of this sheet

Usage

From source file:com.exilant.exility.core.XlxUtil.java

License:Open Source License

private int extractWorker(InputStream inputStream, DataCollection dc, boolean useDictionaryForDataType,
        boolean expectValueInFirstColumn) {

    List<Sheet> sheets = this.getSheets(inputStream, dc);
    int nbrSheets = sheets.size();
    if (nbrSheets == 0) {
        return 0;
    }// w  w  w . ja va  2s. co m

    /*
     * we know that the values_table, if exists, is the first one
     */
    /**
     * null means read all, otherwise read only the sheets found in this set
     */
    Set<String> sheetsToBeRead = null;
    int startAt = 0;
    Sheet sheet = sheets.get(0);
    if (sheet.getSheetName().equals(CommonFieldNames.VALUES_TABLE_NAME)) {
        startAt = 1;
        this.extractValues(sheet, dc, useDictionaryForDataType);
        String sheetNames = dc.getTextValue(XlxUtil.SHEETS_TO_BE_LOADED, null);
        if (sheetNames != null) {
            sheetsToBeRead = new HashSet<String>();
            for (String sn : sheetNames.split(",")) {
                sheetsToBeRead.add(sn.trim());
            }
        }
    }
    for (int i = startAt; i < nbrSheets; i++) {
        sheet = sheets.get(i);
        String nam = sheet.getSheetName();
        /*
         * should this sheet be read?
         */
        if (sheetsToBeRead != null && sheetsToBeRead.contains(nam) == false) {
            Spit.out("skipping sheet " + nam + " as directed by first sheet.");
            continue;
        }

        Grid grid = this.getGrid(sheet, useDictionaryForDataType, expectValueInFirstColumn);
        if (grid != null) {
            dc.addGrid(nam, grid);
        }
    }
    return nbrSheets;
}

From source file:com.exilant.exility.core.XlxUtil.java

License:Open Source License

/**
 * /* ww w  .ja  v  a2 s .  c  o  m*/
 * @param inputStream
 * @param dc
 * @return
 */
private List<Sheet> getSheets(InputStream inputStream, DataCollection dc) {
    List<Sheet> sheets = new ArrayList<Sheet>();
    Workbook workbook = null;
    boolean valuesSheetFound = false;
    try {
        workbook = WorkbookFactory.create(inputStream);
        int n = workbook.getNumberOfSheets();
        for (int i = 0; i < n; i++) {
            Sheet sheet = workbook.getSheetAt(i);
            int nbrRows = sheet.getPhysicalNumberOfRows();
            String sheetName = sheet.getSheetName();
            if (nbrRows > 0) {
                sheets.add(sheet);

                if (!valuesSheetFound && sheetName.equals(CommonFieldNames.VALUES_TABLE_NAME)) {
                    /*
                     * this is supposed to be the first one. swap it if
                     * required
                     */
                    if (i != 0) {
                        sheets.add(i, sheets.get(0));
                        sheets.add(0, sheet);
                    }
                    valuesSheetFound = true;
                }
            }

        }
    } catch (Exception e) {
        String msg = "Error while reading spread sheet. " + e.getMessage();
        Spit.out(msg);
        if (dc != null) {
            dc.addError(msg);
        }
    }
    return sheets;
}

From source file:com.exilant.exility.core.XlxUtil.java

License:Open Source License

/***
 * Get a grid for the content of this sheet. First row of the sheet is
 * assumed to be column heading. Columns from the header are assumed to be
 * the columns for the entire sheet/*from  w  w  w.  j  a v  a2 s .c  om*/
 * 
 * @param sheet
 * @return
 */
private Grid getGrid(Sheet sheet, boolean useDataDictionary, boolean expectValueInFirstColumn) {
    String[][] rawData = this.getRawData(sheet, expectValueInFirstColumn);

    if (rawData == null) {
        return null;
    }

    // let us get the data type of each of the columns, by inspecting down
    // the row till we get a cell with data in it
    DataValueType[] types = null;
    if (useDataDictionary == false) {
        types = this.getExilityTypes(sheet, rawData[0].length);
    }

    // let us now add column after column to the grid
    Grid grid = new Grid(sheet.getSheetName());
    try {
        grid.setRawData(rawData, types);
    } catch (ExilityException e) {
        Spit.out("Error while converting sheet " + sheet.getSheetName() + " to grid " + e.getMessage());
    }
    return grid;
}

From source file:com.eyeq.pivot4j.export.poi.ExcelExporterIT.java

License:Common Public License

/**
 * @param format// w w w.j  a  va2s  .c om
 * @param showParentMember
 * @param showDimensionTitle
 * @param hideSpans
 * @param rows
 * @param mergedRegions
 * @throws IOException
 * @throws InvalidFormatException
 */
protected void testExport(Format format, boolean showParentMember, boolean showDimensionTitle,
        boolean hideSpans, int rows, int mergedRegions) throws IOException, InvalidFormatException {
    OutputStream out = null;

    File file = File.createTempFile("pivot4j-", "." + format.getExtension());

    if (deleteTestFile) {
        file.deleteOnExit();
    }

    try {
        out = new FileOutputStream(file);
        ExcelExporter exporter = new ExcelExporter(out);

        exporter.setFormat(format);
        exporter.setShowParentMembers(showParentMember);
        exporter.setShowDimensionTitle(showDimensionTitle);
        exporter.setHideSpans(hideSpans);

        exporter.render(getPivotModel());
    } finally {
        out.flush();
        IOUtils.closeQuietly(out);
    }

    Workbook workbook = WorkbookFactory.create(file);

    assertThat("Workbook cannot be null.", workbook, is(notNullValue()));

    Sheet sheet = workbook.getSheetAt(0);
    assertThat("Worksheet cannot be null.", sheet, is(notNullValue()));

    assertThat("Invalid worksheet name.", sheet.getSheetName(), is(equalTo("Sales")));

    assertThat("Wrong number of rows.", sheet.getLastRowNum(), is(equalTo(rows)));
    assertThat("Wrong number of merged regions.", sheet.getNumMergedRegions(), is(equalTo(mergedRegions)));
}

From source file:com.femsa.kof.csi.util.XlsAnalizer.java

public List<Xtmpinddl> analizeXlsIndi(UploadedFile file, final DcsUsuario usuario, List<DcsCatPais> paises,
        List<DcsCatIndicadores> indicadores) throws DCSException {
    Workbook excelXLS = null;/*from  www . java  2s .c  om*/
    List<Xtmpinddl> listaCarga = null;
    try {
        String extension = getExtension(file.getFileName());
        Iterator<Row> rowIterator;
        if (extension.equalsIgnoreCase("xlsx")) {
            excelXLS = new XSSFWorkbook(file.getInputstream());
        } else if (extension.equalsIgnoreCase("xls")) {
            excelXLS = new HSSFWorkbook(file.getInputstream());
        }
        int numberOfSheets = excelXLS != null ? excelXLS.getNumberOfSheets() : 0;
        for (int i = 0; i < numberOfSheets; i++) {
            Sheet sheet = excelXLS != null ? excelXLS.getSheetAt(i) : null;
            rowIterator = sheet != null ? sheet.iterator() : null;
            if (sheet != null && i == 0) {
                listaCarga = this.analizeSheetIndi(rowIterator, usuario, sheet.getSheetName(), paises,
                        indicadores);
                if (!listaCarga.isEmpty()) {
                    loadedSheets.add(sheet.getSheetName().trim().toUpperCase());
                } else {
                    omittedSheets.add(sheet.getSheetName().trim().toUpperCase() + ", Empty");
                }
            } else {
                String mensaje = sheet != null ? sheet.getSheetName().trim().toUpperCase() + ", not valid."
                        : "Not valid.";
                omittedSheets.add(mensaje);
            }
        }
    } catch (IOException ex) {
        Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Error IO", ex);
        throw new DCSException("An error ocurred while analizing the file: " + ex.getMessage());
    } finally {
        try {
            file.getInputstream().close();
        } catch (IOException ex) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Error IO", ex);
            throw new DCSException("An error ocurred while analizing the file: " + ex.getMessage());
        }
    }
    return listaCarga;
}

From source file:com.femsa.kof.csi.util.XlsAnalizer.java

public List<XtmpinddlFlota> analizeXlsFlota(UploadedFile file, final DcsUsuario usuario,
        List<DcsCatPais> paises) throws DCSException {
    Workbook excelXLS = null;// w ww  . j a v  a 2  s  . c o  m
    List<XtmpinddlFlota> listaCarga = null;
    try {
        String extension = getExtension(file.getFileName());
        Iterator<Row> rowIterator;
        if (extension.equalsIgnoreCase("xlsx")) {
            excelXLS = new XSSFWorkbook(file.getInputstream());
        } else if (extension.equalsIgnoreCase("xls")) {
            excelXLS = new HSSFWorkbook(file.getInputstream());
        }
        int numberOfSheets = excelXLS != null ? excelXLS.getNumberOfSheets() : 0;
        for (int i = 0; i < numberOfSheets; i++) {
            Sheet sheet = excelXLS != null ? excelXLS.getSheetAt(i) : null;
            rowIterator = sheet != null ? sheet.iterator() : null;
            if (sheet != null && i == 0) {
                listaCarga = this.analizeSheetFlota(rowIterator, usuario, sheet.getSheetName(), paises);
                if (!listaCarga.isEmpty()) {
                    loadedSheets.add(sheet.getSheetName().trim().toUpperCase());
                } else {
                    omittedSheets.add(sheet.getSheetName().trim().toUpperCase() + ", Empty");
                }
            } else {
                String mensaje = sheet != null ? sheet.getSheetName().trim().toUpperCase() + ", not valid."
                        : "Not valid.";
                omittedSheets.add(mensaje);
            }
        }
    } catch (IOException ex) {
        Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Error IO", ex);
        throw new DCSException("An error ocurred while analizing the file: " + ex.getMessage());
    } finally {
        try {
            file.getInputstream().close();
        } catch (IOException ex) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Error IO", ex);
            throw new DCSException("An error ocurred while analizing the file: " + ex.getMessage());
        }
    }
    return listaCarga;
}

From source file:com.ggvaidya.scinames.ui.DatasetImporterController.java

License:Open Source License

private void displayPreview() {
    filePreviewTextArea.setText("");
    if (currentFile == null)
        return;//w  ww.j  a  v  a  2s. c o  m

    if (currentFile.getName().endsWith("xls") || currentFile.getName().endsWith("xlsx")) {
        // Excel files are special! We need to load it special and then preview it.
        ExcelImporter imp;

        String excelPreviewText;
        try {
            imp = new ExcelImporter(currentFile);
            List<Sheet> sheets = imp.getWorksheets();

            StringBuffer preview = new StringBuffer();
            preview.append("Excel file version " + imp.getWorkbook().getSpreadsheetVersion() + " containing "
                    + sheets.size() + " sheets.\n");
            for (Sheet sh : sheets) {
                preview.append(
                        " - " + sh.getSheetName() + " contains " + sh.getPhysicalNumberOfRows() + " rows.\n");

                // No rows?
                if (sh.getPhysicalNumberOfRows() == 0)
                    continue;

                // Header row?
                Row headerRow = sh.getRow(0);
                boolean headerEmitted = false;

                for (int rowIndex = 1; rowIndex < sh.getPhysicalNumberOfRows(); rowIndex++) {
                    if (rowIndex >= 10)
                        break;

                    Row row = sh.getRow(rowIndex);

                    if (!headerEmitted) {
                        preview.append(
                                "  - " + String.join("\t", ExcelImporter.getCellsAsValues(headerRow)) + "\n");
                        headerEmitted = true;
                    }
                    preview.append("  - " + String.join("\t", ExcelImporter.getCellsAsValues(row)) + "\n");
                }

                preview.append("\n");
            }

            excelPreviewText = preview.toString();
        } catch (IOException ex) {
            excelPreviewText = "Could not open '" + currentFile + "': " + ex;
        }

        filePreviewTextArea.setText(excelPreviewText);

        return;
    }

    // If we're here, then this is some sort of text file, so let's preview the text content directly.
    try {
        LineNumberReader reader = new LineNumberReader(new BufferedReader(new FileReader(currentFile)));

        // Load the first ten lines.
        StringBuffer head = new StringBuffer();
        for (int x = 0; x < 10; x++) {
            head.append(reader.readLine());
            head.append('\n');
        }

        reader.close();
        filePreviewTextArea.setText(head.toString());
    } catch (IOException ex) {
        filePreviewTextArea.setBackground(BACKGROUND_RED);
        filePreviewTextArea.setText("ERROR: Could not load file '" + currentFile + "': " + ex);
    }
}

From source file:com.github.drbookings.ical.XlsxBookingFactory.java

License:Open Source License

@Override
public Collection<BookingBeanSer> build() {
    final List<BookingBeanSer> bookings = new ArrayList<>();
    FileInputStream stream = null;
    Workbook workbook = null;//from   w  ww .  j a va 2  s. c om
    try {
        stream = new FileInputStream(file);
        workbook = new HSSFWorkbook(stream);
        final Sheet sheet = workbook.getSheetAt(0);
        if (logger.isInfoEnabled()) {
            logger.info("Processing sheet " + sheet.getSheetName());
        }
        final int indexBookingNumber = FileFormatBookingXLS.getColumnIndexBookingNumber(sheet.getRow(0));
        final int indexClientName = FileFormatBookingXLS.getColumnIndexClientName(sheet.getRow(0));
        final int indexBookingCheckIn = FileFormatBookingXLS.getColumnIndexCheckIn(sheet.getRow(0));
        final int indexBookingCheckOut = FileFormatBookingXLS.getColumnIndexCheckOut(sheet.getRow(0));
        final int indexStatus = FileFormatBookingXLS.getColumnIndexStatus(sheet.getRow(0));
        final List<Integer> bookingNumbers = new ArrayList<>();
        final List<String> guestNames = new ArrayList<>();
        final List<String> stati = new ArrayList<>();
        final List<LocalDate> bookingCheckIn = new ArrayList<>();
        final List<LocalDate> bookingCheckOut = new ArrayList<>();
        for (final Row r : sheet) {
            // skip first row
            if (r.getRowNum() == 0) {
                continue;
            }
            bookingNumbers.add(FileFormatBookingXLS.getBookingNumber(r.getCell(indexBookingNumber)));
            guestNames.add(FileFormatBookingXLS.getString(r.getCell(indexClientName)));
            bookingCheckIn.add(FileFormatBookingXLS.getDate(r.getCell(indexBookingCheckIn)));
            bookingCheckOut.add(FileFormatBookingXLS.getDate(r.getCell(indexBookingCheckOut)));
            stati.add(FileFormatBookingXLS.getString(r.getCell(indexStatus)));
        }
        if (logger.isDebugEnabled()) {
            logger.debug("BookingBean numbers: " + bookingNumbers);
            logger.debug("Guest names: " + guestNames);
            logger.debug("Check-in dates: " + bookingCheckIn);
            logger.debug("Check-out dates: " + bookingCheckOut);
        }
        if (logger.isInfoEnabled()) {
            logger.info("Building bookings.. ");
        }

        for (int i = 0; i < bookingNumbers.size(); i++) {
            final int number = bookingNumbers.get(i);
            final LocalDate checkIn = bookingCheckIn.get(i);
            final LocalDate checkOut = bookingCheckOut.get(i);
            final String names = guestNames.get(i);
            final String status = stati.get(i);
            if (status.equals("ok")) {
                final BookingBeanSer bb = new BookingBeanSer();
                bb.checkInDate = checkIn;
                bb.checkOutDate = checkOut;
                bb.guestName = names;
                bb.externalId = Integer.toString(number);
                bookings.add(bb);
            } else {
                if (logger.isDebugEnabled()) {
                    logger.debug("Skipping status " + status);
                }
            }
        }
    } catch (final Exception e) {
        if (logger.isErrorEnabled()) {
            logger.error(e.getLocalizedMessage(), e);
        }
    } finally {
        if (workbook != null) {
            IOUtils.closeQuietly(workbook);
        }
        if (stream != null) {
            IOUtils.closeQuietly(stream);
        }
    }
    return bookings;
}

From source file:com.github.igor_kudryashov.utils.excel.ExcelWriter.java

License:Apache License

/**
 * Creates new row in the worksheet/*from  w w w .  j av  a2s .c  om*/
 *
 * @param sheet
 *            Sheet
 * @param values
 *            the value of the new cell line
 * @param header
 *            <code>true</code> if this row is the header, otherwise
 *            <code>false</code>
 * @param withStyle
 *            <code>true</code> if in this row will be applied styles for
 *            the cells, otherwise <code>false</code>
 * @return created row
 */
public Row createRow(Sheet sheet, Object[] values, boolean header, boolean withStyle) {
    Row row;
    String sheetName = sheet.getSheetName();
    int rownum = 0;
    if (rows.containsKey(sheetName)) {
        rownum = rows.get(sheetName);
    }
    // create new row
    row = sheet.createRow(rownum);
    // create a cells of row
    for (int x = 0; x < values.length; x++) {
        Object o = values[x];
        Cell cell = row.createCell(x);
        if (o != null) {
            if (o.getClass().getName().contains("String")) {
                String value = (String) values[x];
                cell.setCellValue(value);
            } else if (o.getClass().getName().contains("Double")) {
                cell.setCellValue((Double) values[x]);
            } else if (o.getClass().getName().contains("Integer")) {
                cell.setCellValue((Integer) values[x]);
            } else if (o.getClass().getName().contains("Date")) {
                cell.setCellValue((Date) values[x]);
            }
            if (withStyle) {
                cell.setCellStyle(getCellStyle(rownum, values[x], header));
            }
        }
        // save max column width
        if (!header) {
            saveColumnWidth(sheet, x, o);
        }
    }
    // save the last number of row for this worksheet
    rows.put(sheetName, ++rownum);
    return row;
}

From source file:com.github.igor_kudryashov.utils.excel.ExcelWriter.java

License:Apache License

/**
 * Stores the maximum width of the column
 *
 * @param sheet/*w  w  w .  ja  v  a2  s .c om*/
 *            Name of worksheet
 * @param x
 *            number of column
 * @param value
 *            cell value
 */
private void saveColumnWidth(Sheet sheet, int x, Object value) {
    String sheetName = sheet.getSheetName();
    Map<Integer, Integer> width;

    if (columnWidth.containsKey(sheetName)) {
        width = columnWidth.get(sheetName);
    } else {
        width = new HashMap<Integer, Integer>();
        columnWidth.put(sheetName, width);
    }
    // calculate width of column by data value
    int w = 0;
    String className = value.getClass().getName();
    if (className.contains("String")) {
        w = ((String) value).length() * 256;
    }
    if (className.contains("Double") || className.contains("Integer")) {
        w = value.toString().length() * 256;
    }
    if (className.contains("Date")) {
        w = 2560;
    }
    if (w < MIN_COLUMN_WIDTH) {
        w = MIN_COLUMN_WIDTH;
    }
    if (w > MAX_COLUMN_WIDTH) {
        w = MAX_COLUMN_WIDTH;
    }
    if (width.containsKey(x)) {
        int i = width.get(x);
        if (i < w) {
            width.put(x, w);
        }
    } else {
        width.put(x, w);
    }

}