public void endArea() {
   for (ISheetHandler handler : handlers) {
     try {
       handler.endArea();
     } catch (Exception e) {
       logger.error(StringUtils.EMPTY, e);
     }
   }
 }
 public void endSheet() {
   for (ISheetHandler handler : handlers) {
     try {
       handler.endSheet();
     } catch (Exception e) {
       logger.error(e);
     }
   }
 }
 public void row(String[] row) {
   for (ISheetHandler handler : handlers) {
     try {
       handler.row(row);
     } catch (Exception e) {
       logger.error(StringUtils.EMPTY, e);
     }
   }
 }
 public void header(String[] header) {
   for (ISheetHandler handler : handlers) {
     try {
       handler.header(header);
     } catch (Exception e) {
       logger.error(StringUtils.EMPTY, e);
     }
   }
 }
 public void keyValue(String key, String value) {
   for (ISheetHandler handler : handlers) {
     try {
       handler.keyValue(key, value);
     } catch (Exception e) {
       logger.error(StringUtils.EMPTY, e);
     }
   }
 }
 public void startArea(String startTag) {
   for (ISheetHandler handler : handlers) {
     try {
       handler.startArea(startTag);
     } catch (Exception e) {
       logger.error(StringUtils.EMPTY, e);
     }
   }
 }
 public void startSheet(Sheet sheet) {
   for (ISheetHandler handler : handlers) {
     try {
       handler.startSheet(sheet);
     } catch (Exception e) {
       logger.error(StringUtils.EMPTY, e);
     }
   }
 }
 public void startBlock(String startTag, int type) {
   currentBlockTag = startTag;
   currentBlockType = type;
   for (ISheetHandler handler : handlers) {
     try {
       handler.startBlock(startTag, type);
     } catch (Exception e) {
       logger.error(StringUtils.EMPTY, e);
     }
   }
 }
  public void endBlock() {
    for (ISheetHandler handler : handlers) {
      try {
        handler.endBlock();
      } catch (Exception e) {
        logger.error(StringUtils.EMPTY, e);
      }
    }

    switch (currentBlockType) {
      case BlockTypes.TABLE:
        headerFound = false;
        break;
      case BlockTypes.TEXT:
        text = new StringBuffer();
        break;
    }
  }