src/org/tiefaces/components/websheet/dataobjects/CellMap.java
@Override
	public final Object put(final Object key, final Object value) {
		try {
			CellMapKey mkey = new CellMapKey((String) key);
			if (!mkey.isParseSuccess()) {
				return null;
			}
			Cell poiCell = parent.getCellHelper()
					.getPoiCellWithRowColFromCurrentPage(mkey.getRowIndex(),
							mkey.getColIndex());
			if (poiCell == null) {
				return null;
			}
			String oldValue = CellUtility
					.getCellValueWithoutFormat(poiCell);
			FacesCell facesCell = parent.getCellHelper()
					.getFacesCellWithRowColFromCurrentPage(
							mkey.getRowIndex(), mkey.getColIndex());
			String newValue = assembleNewValue(value, facesCell);
			if (newValue != null && !newValue.equals(oldValue)) {
				CellUtility.setCellValue(poiCell, newValue);
				if (facesCell.isHasSaveAttr()) {
					parent.getCellHelper().saveDataInContext(poiCell,
							newValue);
				}
				// patch to avoid not updated downloaded file
				CellUtility.copyCell(poiCell.getSheet(), poiCell.getRow(), poiCell.getRow(), poiCell.getColumnIndex(),false);
				parent.getCellHelper().reCalc();
			}

			return value;
		} catch (Exception ex) {
			LOG.log(Level.SEVERE,
					"Save cell data error : " + ex.getLocalizedMessage(),
					ex);
		}
		return null;
	}
@Override
	public final Object put(final Object key, final Object value) {
		try {
			CellMapKey mkey = new CellMapKey((String) key);
			if (!mkey.isParseSuccess()) {
				return null;
			}
			Cell poiCell = parent.getCellHelper()
					.getPoiCellWithRowColFromCurrentPage(mkey.getRowIndex(),
							mkey.getColIndex());
			if (poiCell == null) {
				return null;
			}
			String oldValue = CellUtility
					.getCellValueWithoutFormat(poiCell);
			FacesCell facesCell = parent.getCellHelper()
					.getFacesCellWithRowColFromCurrentPage(
							mkey.getRowIndex(), mkey.getColIndex());
			String newValue = assembleNewValue(value, facesCell);
			if (newValue != null && !newValue.equals(oldValue)) {
				CellUtility.setCellValue(poiCell, newValue);
				if (facesCell.isHasSaveAttr()) {
					parent.getCellHelper().saveDataInContext(poiCell,
							newValue);
				}
				// patch to avoid not updated downloaded file
				CellUtility.copyCell(poiCell.getSheet(), poiCell.getRow(), poiCell.getRow(), poiCell.getColumnIndex(),false);
				parent.getCellHelper().reCalc();
			}

			return value;
		} catch (Exception ex) {
			LOG.log(Level.SEVERE,
					"Save cell data error : " + ex.getLocalizedMessage(),
					ex);
		}
		return null;
	}
/*
(non-Javadoc)

@see java.util.Map#put(java.lang.Object, java.lang.Object)