List of usage examples for org.apache.poi.ss.usermodel Sheet getSheetName
String getSheetName();
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); } }