List of usage examples for org.apache.poi.ss.usermodel Row getCell
Cell getCell(int cellnum);
From source file:com.axelor.apps.admin.service.ViewDocExportService.java
License:Open Source License
private void updateDocMap(MetaFile docFile) { try {/*from w ww . j ava2 s . c o m*/ File doc = MetaFiles.getPath(docFile).toFile(); FileInputStream inSteam = new FileInputStream(doc); XSSFWorkbook book = new XSSFWorkbook(inSteam); oldBook = book; for (XSSFSheet sheet : book) { String lastKey = sheet.getSheetName(); Iterator<Row> rowIter = sheet.rowIterator(); while (rowIter.hasNext()) { Row row = rowIter.next(); String key = null; if (row.getRowNum() == 0) { key = sheet.getSheetName(); } else { String name = getCellValue(row.getCell(4)); if (Strings.isNullOrEmpty(name)) { name = getCellValue(row.getCell(5)); } String type = getCellValue(row.getCell(3)); if (type == null) { continue; } type = type.trim(); key = getCellValue(row.getCell(1)) + "," + getCellValue(row.getCell(2)) + "," + type + "," + name; if (addComment(lastKey, type, row)) { continue; } else { lastKey = key; } } docMap.put(key, row.getRowNum()); } } } catch (IOException e) { e.printStackTrace(); } }
From source file:com.axelor.apps.admin.service.ViewDocExportService.java
License:Open Source License
private boolean addComment(String lastKey, String type, Row row) { String mType = type;//from w ww .j a v a 2 s.co m if (type.contains("(")) { mType = type.substring(0, type.indexOf("(")); mType = mType.replace("-", "_"); } if (!fieldTypes.contains(mType)) { Cell firstCell = row.getCell(0); if (firstCell != null) { List<Integer> rowIndexs = new ArrayList<Integer>(); if (commentMap.containsKey(lastKey)) { rowIndexs = commentMap.get(lastKey); } rowIndexs.add(row.getRowNum()); commentMap.put(lastKey, rowIndexs); return true; } } return false; }
From source file:com.axelor.studio.service.data.validator.ValidatorService.java
License:Open Source License
public void addLog(String log, String sheetName, int rowNum) throws IOException { if (logFile == null) { logFile = File.createTempFile("ImportLog", ".xlsx"); logBook = new XSSFWorkbook(); }/*from w w w.j av a2 s.co m*/ XSSFSheet sheet = logBook.getSheet(sheetName); if (sheet == null) { sheet = logBook.createSheet(sheetName); XSSFRow titleRow = sheet.createRow(0); titleRow.createCell(0).setCellValue("Row Number"); titleRow.createCell(1).setCellValue("Issues"); } Iterator<Row> rowIterator = sheet.rowIterator(); Row logRow = null; while (rowIterator.hasNext()) { Row sheetRow = rowIterator.next(); Cell cell = sheetRow.getCell(0); if (cell.getCellType() != Cell.CELL_TYPE_NUMERIC) { continue; } double value = cell.getNumericCellValue(); if (value == rowNum + 1) { logRow = sheetRow; break; } } if (logRow == null) { logRow = sheet.createRow(sheet.getPhysicalNumberOfRows()); } Cell cell = logRow.getCell(0); if (cell == null) { cell = logRow.createCell(0); cell.setCellValue(rowNum + 1); } cell = logRow.getCell(1); if (cell == null) { cell = logRow.createCell(1); } String oldValue = cell.getStringCellValue(); if (oldValue == null) { cell.setCellValue(log); } else { cell.setCellValue(oldValue + "\n" + log); } }
From source file:com.b2international.snowowl.datastore.server.importer.TerminologyImportExcelParser.java
License:Apache License
private Set<Row> processMembers(final Sheet sheet, int memberStartIndex) { final int lastRowNum = sheet.getLastRowNum(); final Set<Row> componentMembers = Sets.newHashSet(); for (int i = memberStartIndex; i <= lastRowNum; i++) { final Row row = sheet.getRow(i); if (null != row) { boolean hasValue = false; short lastCellNum = row.getLastCellNum(); for (int j = 0; j < lastCellNum; j++) { final String cellValue = ExcelUtilities.extractContentAsString(row.getCell(j)); // member header row if (memberStartIndex == i) { // header row does not have values, but column index to name map columnIndexesByName.put(cellValue, j); } else if (!StringUtils.isEmpty(cellValue)) { hasValue = true;//from w ww . ja va 2 s .c o m break; } } if (hasValue) { componentMembers.add(row); } } } return componentMembers; }
From source file:com.b2international.snowowl.snomed.core.refset.automap.XlsParser.java
License:Apache License
private void parse(Sheet sheet) throws SnowowlServiceException { int firstRowIndex = findFirstRow(sheet); if (firstRowIndex == -1) { return;/*from w w w . j a v a2s . co m*/ } if (hasHeader) { header = collectRowValues(sheet.getRow(firstRowIndex)); firstRowIndex++; } else { final Row firstRow = sheet.getRow(firstRowIndex); Cell first = firstRow.getCell(firstRow.getFirstCellNum()); Cell second = firstRow.getCell(firstRow.getFirstCellNum() + 1); if (isNumeric(first) || isNumeric(second)) { header.add("ID"); } if (isString(first) || isString(second)) { header.add("Label"); } } for (int i = firstRowIndex; i <= sheet.getLastRowNum(); i++) { Row row = sheet.getRow(i); // totally empty row w/o any value if (row == null) { if (!skipEmptyRows) { content.add(Collections.<String>emptyList()); } continue; } if (row.getLastCellNum() > maxWidth) { maxWidth = row.getLastCellNum(); } List<String> rowValues = collectRowValues(row); if (rowValues.isEmpty()) { if (!skipEmptyRows) { content.add(Collections.<String>emptyList()); } continue; } content.add(rowValues); } }
From source file:com.b2international.snowowl.snomed.core.refset.automap.XlsParser.java
License:Apache License
/** * Returns the first logical row which contains a logical number or string. * /*from w w w . j a v a 2 s . c o m*/ * @param sheet * @return */ private int findFirstRow(Sheet sheet) { int i = -1; Iterator<Row> iterator = sheet.iterator(); if (iterator == null || !iterator.hasNext()) { return -1; } int cellType = -1; do { Row row = iterator.next(); if (row == null) { return -1; } short firstLogicalCell = row.getFirstCellNum(); Cell cell = row.getCell(firstLogicalCell); if (cell != null) { cellType = cell.getCellType(); } i++; } while (cellType != Cell.CELL_TYPE_STRING && cellType != Cell.CELL_TYPE_NUMERIC); return i; }
From source file:com.b510.excel.client.LoanCalculator.java
License:Apache License
public static void main(String[] args) throws Exception { Workbook wb;/* w w w . j a v a 2 s .c o m*/ if (args.length > 0 && args[0].equals("-xls")) wb = new HSSFWorkbook(); else wb = new XSSFWorkbook(); Map<String, CellStyle> styles = createStyles(wb); Sheet sheet = wb.createSheet("Loan Calculator"); sheet.setPrintGridlines(false); sheet.setDisplayGridlines(false); PrintSetup printSetup = sheet.getPrintSetup(); printSetup.setLandscape(true); sheet.setFitToPage(true); sheet.setHorizontallyCenter(true); sheet.setColumnWidth(0, 3 * 256); sheet.setColumnWidth(1, 3 * 256); sheet.setColumnWidth(2, 11 * 256); sheet.setColumnWidth(3, 14 * 256); sheet.setColumnWidth(4, 14 * 256); sheet.setColumnWidth(5, 14 * 256); sheet.setColumnWidth(6, 14 * 256); createNames(wb); Row titleRow = sheet.createRow(0); titleRow.setHeightInPoints(35); for (int i = 1; i <= 7; i++) { titleRow.createCell(i).setCellStyle(styles.get("title")); } Cell titleCell = titleRow.getCell(2); titleCell.setCellValue("Simple Loan Calculator"); sheet.addMergedRegion(CellRangeAddress.valueOf("$C$1:$H$1")); Row row = sheet.createRow(2); Cell cell = row.createCell(4); cell.setCellValue("Enter values"); cell.setCellStyle(styles.get("item_right")); row = sheet.createRow(3); cell = row.createCell(2); cell.setCellValue("Loan amount"); cell.setCellStyle(styles.get("item_left")); cell = row.createCell(4); cell.setCellStyle(styles.get("input_$")); cell.setAsActiveCell(); row = sheet.createRow(4); cell = row.createCell(2); cell.setCellValue("Annual interest rate"); cell.setCellStyle(styles.get("item_left")); cell = row.createCell(4); cell.setCellStyle(styles.get("input_%")); row = sheet.createRow(5); cell = row.createCell(2); cell.setCellValue("Loan period in years"); cell.setCellStyle(styles.get("item_left")); cell = row.createCell(4); cell.setCellStyle(styles.get("input_i")); row = sheet.createRow(6); cell = row.createCell(2); cell.setCellValue("Start date of loan"); cell.setCellStyle(styles.get("item_left")); cell = row.createCell(4); cell.setCellStyle(styles.get("input_d")); row = sheet.createRow(8); cell = row.createCell(2); cell.setCellValue("Monthly payment"); cell.setCellStyle(styles.get("item_left")); cell = row.createCell(4); cell.setCellFormula("IF(Values_Entered,Monthly_Payment,\"\")"); cell.setCellStyle(styles.get("formula_$")); row = sheet.createRow(9); cell = row.createCell(2); cell.setCellValue("Number of payments"); cell.setCellStyle(styles.get("item_left")); cell = row.createCell(4); cell.setCellFormula("IF(Values_Entered,Loan_Years*12,\"\")"); cell.setCellStyle(styles.get("formula_i")); row = sheet.createRow(10); cell = row.createCell(2); cell.setCellValue("Total interest"); cell.setCellStyle(styles.get("item_left")); cell = row.createCell(4); cell.setCellFormula("IF(Values_Entered,Total_Cost-Loan_Amount,\"\")"); cell.setCellStyle(styles.get("formula_$")); row = sheet.createRow(11); cell = row.createCell(2); cell.setCellValue("Total cost of loan"); cell.setCellStyle(styles.get("item_left")); cell = row.createCell(4); cell.setCellFormula("IF(Values_Entered,Monthly_Payment*Number_of_Payments,\"\")"); cell.setCellStyle(styles.get("formula_$")); // Write the output to a file String file = "loan-calculator.xls"; if (wb instanceof XSSFWorkbook) file += "x"; FileOutputStream out = new FileOutputStream(file); wb.write(out); out.close(); }
From source file:com.b510.excel.client.TimesheetDemo.java
License:Apache License
public static void main(String[] args) throws Exception { Workbook wb;//from w ww . j a va 2 s .c o m if (args.length > 0 && args[0].equals("-xls")) wb = new HSSFWorkbook(); else wb = new XSSFWorkbook(); Map<String, CellStyle> styles = createStyles(wb); Sheet sheet = wb.createSheet("Timesheet"); PrintSetup printSetup = sheet.getPrintSetup(); printSetup.setLandscape(true); sheet.setFitToPage(true); sheet.setHorizontallyCenter(true); //title row Row titleRow = sheet.createRow(0); titleRow.setHeightInPoints(45); Cell titleCell = titleRow.createCell(0); titleCell.setCellValue("Weekly Timesheet"); titleCell.setCellStyle(styles.get("title")); sheet.addMergedRegion(CellRangeAddress.valueOf("$A$1:$L$1")); //header row Row headerRow = sheet.createRow(1); headerRow.setHeightInPoints(40); Cell headerCell; for (int i = 0; i < titles.length; i++) { headerCell = headerRow.createCell(i); headerCell.setCellValue(titles[i]); headerCell.setCellStyle(styles.get("header")); } int rownum = 2; for (int i = 0; i < 10; i++) { Row row = sheet.createRow(rownum++); for (int j = 0; j < titles.length; j++) { Cell cell = row.createCell(j); if (j == 9) { //the 10th cell contains sum over week days, e.g. SUM(C3:I3) String ref = "C" + rownum + ":I" + rownum; cell.setCellFormula("SUM(" + ref + ")"); cell.setCellStyle(styles.get("formula")); } else if (j == 11) { cell.setCellFormula("J" + rownum + "-K" + rownum); cell.setCellStyle(styles.get("formula")); } else { cell.setCellStyle(styles.get("cell")); } } } //row with totals below Row sumRow = sheet.createRow(rownum++); sumRow.setHeightInPoints(35); Cell cell; cell = sumRow.createCell(0); cell.setCellStyle(styles.get("formula")); cell = sumRow.createCell(1); cell.setCellValue("Total Hrs:"); cell.setCellStyle(styles.get("formula")); for (int j = 2; j < 12; j++) { cell = sumRow.createCell(j); String ref = (char) ('A' + j) + "3:" + (char) ('A' + j) + "12"; cell.setCellFormula("SUM(" + ref + ")"); if (j >= 9) cell.setCellStyle(styles.get("formula_2")); else cell.setCellStyle(styles.get("formula")); } rownum++; sumRow = sheet.createRow(rownum++); sumRow.setHeightInPoints(25); cell = sumRow.createCell(0); cell.setCellValue("Total Regular Hours"); cell.setCellStyle(styles.get("formula")); cell = sumRow.createCell(1); cell.setCellFormula("L13"); cell.setCellStyle(styles.get("formula_2")); sumRow = sheet.createRow(rownum++); sumRow.setHeightInPoints(25); cell = sumRow.createCell(0); cell.setCellValue("Total Overtime Hours"); cell.setCellStyle(styles.get("formula")); cell = sumRow.createCell(1); cell.setCellFormula("K13"); cell.setCellStyle(styles.get("formula_2")); //set sample data for (int i = 0; i < sample_data.length; i++) { Row row = sheet.getRow(2 + i); for (int j = 0; j < sample_data[i].length; j++) { if (sample_data[i][j] == null) continue; if (sample_data[i][j] instanceof String) { row.getCell(j).setCellValue((String) sample_data[i][j]); } else { row.getCell(j).setCellValue((Double) sample_data[i][j]); } } } //finally set column widths, the width is measured in units of 1/256th of a character width sheet.setColumnWidth(0, 30 * 256); //30 characters wide for (int i = 2; i < 9; i++) { sheet.setColumnWidth(i, 6 * 256); //6 characters wide } sheet.setColumnWidth(10, 10 * 256); //10 characters wide // Write the output to a file String file = "timesheet.xls"; if (wb instanceof XSSFWorkbook) file += "x"; FileOutputStream out = new FileOutputStream(file); wb.write(out); out.close(); }
From source file:com.bawan.vims.common.util.ExcelHelper.java
/** * ?excel/* w w w . j a va 2 s.c o m*/ */ public static Map<String, List<Map<String, Object>>> parserExcel(String excelFilePath) { Map<String, List<Map<String, Object>>> result = new HashMap<String, List<Map<String, Object>>>(); InputStream in = null; Workbook wb = null; try { File excelFile = new File(excelFilePath); if (excelFile == null || !excelFile.exists()) { logger.error("ExcelHelper[parserExcel] excel file don't exist!"); return null; } in = new FileInputStream(excelFile); String suffix = excelFilePath.substring(excelFilePath.lastIndexOf(".")); if (!".xls".equals(suffix) && !".xlsx".equals(suffix)) { logger.error("ExcelHelper[parserExcel] file suffix do'not match[*.xls, *.xlsx]! "); return null; } /*else if ("xls".equals(suffix)){ wb = new HSSFWorkbook(in); } else if("xlsx".equals(suffix)) { wb = new XSSFWorkbook(in); }*/ wb = WorkbookFactory.create(in); // POI 3.8?, ??xls?xlsx? int sheetSize = 0; while (true) { Sheet sheet = wb.getSheetAt(sheetSize); if (sheet == null) { break; } String sheetName = sheet.getSheetName(); List<Map<String, Object>> sheetContent = new ArrayList<Map<String, Object>>(); for (int rowNum = 521; rowNum < sheet.getLastRowNum(); rowNum++) { Row row = sheet.getRow(rowNum); Map<String, Object> rowMap = new HashMap<String, Object>(); StringBuffer rowContent = new StringBuffer( "insert into vims_car_market_spread_data(ID, MANUFACTURER, BRAND, VEHICEL_LEVEL, VEHICEL, YEAR, MONTH, AREA, SALE_SIZE, PRODUCTION_SIZE, LICENSED_SIZE, TOTAL_FEE, INTERNET_FEE, TV_FEE, MAGAZINE_FEE, NEWSPAPER_FEE, RADIO_FEE, METRO_FEE, OUTDOORS_FEE) values("); rowContent.append("'").append(IDGenerator.getID(32)).append("',"); for (int cellIndex = 0; cellIndex < row.getLastCellNum(); cellIndex++) { Cell cell = row.getCell(cellIndex); // if (cell == null) { // rowMap.put(rowNum + "_" + cellIndex, null); // } else { // rowMap.put(rowNum + "_" + cellIndex, cell.toString()); // } if (cellIndex == 2) { if (cell == null) { rowContent.append(0).append(","); } else if ("mpv".equalsIgnoreCase(cell.toString())) { rowContent.append(1).append(","); } else if ("suv".equalsIgnoreCase(cell.toString())) { rowContent.append(2).append(","); } else if ("".equalsIgnoreCase(cell.toString())) { rowContent.append(3).append(","); } else if ("".equalsIgnoreCase(cell.toString())) { rowContent.append(4).append(","); } else if ("?".equalsIgnoreCase(cell.toString())) { rowContent.append(5).append(","); } else if ("".equalsIgnoreCase(cell.toString())) { rowContent.append(6).append(","); } continue; } if (cell == null || cell.toString().trim().length() == 0) { if (cellIndex == 0 || cellIndex == 1 || cellIndex == 2 || cellIndex == 3 || cellIndex == 6) { rowContent.append("default").append(","); } else { rowContent.append("0").append(","); } } else { if (cellIndex == 0 || cellIndex == 1 || cellIndex == 2 || cellIndex == 3 || cellIndex == 6) { rowContent.append("'").append(cell.toString()).append("',"); } else if (cellIndex == 4 || cellIndex == 5 || cellIndex == 7 || cellIndex == 8 || cellIndex == 9) { String value = cell.toString().substring(0, cell.toString().indexOf(".")); rowContent.append(Integer.valueOf(value)).append(","); } else { rowContent.append(cell.toString()).append(","); } } } String sql = rowContent.toString(); sql = sql.substring(0, sql.length() - 1); sql += ");"; System.out.println(sql); sheetContent.add(rowMap); } result.put(sheetName, sheetContent); sheetSize++; } } catch (Exception e) { e.printStackTrace(); logger.error("ExcelHelper[parserExcel] excel file not found! error:" + e.getMessage(), e); } finally { try { if (wb != null) { wb.close(); wb = null; } } catch (IOException e1) { } try { if (in != null) { in.close(); in = null; } } catch (IOException e) { } } return result; }
From source file:com.benasmussen.maven.plugin.i18n.io.ResourceReader.java
License:Apache License
/** * Get all resource definitions and column index * /*from w w w.ja v a 2s . c o m*/ * <pre> * de, * de_DE * en, * en_GB, * en_US * </pre> * * @return */ public Map<String, Integer> getLocaleDefinitions(String sheetName) { int maxCols = 300; Map<String, Integer> localeDefinitions = new HashMap<String, Integer>(); CellRangeAddress cellRange = CellRangeAddress.valueOf(localeCell); Sheet sheet = getSheetByName(sheetName); Row row = sheet.getRow(cellRange.getFirstRow()); int colIndex = cellRange.getFirstColumn(); for (int idx = colIndex; idx < (maxCols + colIndex); idx++) { Cell cell = row.getCell(idx); if (cell != null) { localeDefinitions.put(cell.getStringCellValue(), idx); } else { break; } } return localeDefinitions; }