I have template sheets that I use to copy cells with formatting to other
sheets. I do it this way:

  private static void copyCell(Cell oldCell, Cell newCell) {
    newCell.setCellStyle(oldCell.getCellStyle());

    switch (oldCell.getCellType()) {
    case Cell.CELL_TYPE_STRING:
      newCell.setCellValue(oldCell.getRichStringCellValue());
      break;
    case Cell.CELL_TYPE_NUMERIC:
      newCell.setCellValue(oldCell.getNumericCellValue());
      break;
    case Cell.CELL_TYPE_BLANK:
      newCell.setCellType(Cell.CELL_TYPE_BLANK);
      break;
    case Cell.CELL_TYPE_FORMULA:
      newCell.setCellFormula(oldCell.getCellFormula());
      break;
    case Cell.CELL_TYPE_BOOLEAN:
      newCell.setCellValue(oldCell.getBooleanCellValue());
      break;
    case Cell.CELL_TYPE_ERROR:
      newCell.setCellErrorValue(oldCell.getErrorCellValue());
      break;
    default:
      break;
    }
  }

This seems to work and since I use the same style, the formatting is copied
as well.

However, some of the cells have data validations that renders as a listbox.
How can I copy the data validation from one cell to another? If the source
cell has a listbox I want the target cell to have one too.

/Bengt

Reply via email to