code: @SuppressWarnings({ "unchecked", "rawtypes" })
  	public ExcelWriter writeRow(Object rowBean, boolean isWriteKeyAsHead) {
  		if (rowBean instanceof Iterable) {
  			return writeRow((Iterable<?>) rowBean);
  		}
  		Map rowMap = null;
  		if (rowBean instanceof Map) {
  			if (MapUtil.isNotEmpty(this.headerAlias)) {
  				rowMap = MapUtil.newTreeMap((Map) rowBean, getInitedAliasComparator());
  			} else {
  				rowMap = (Map) rowBean;
  			}
  		} else if (BeanUtil.isBean(rowBean.getClass())) {
  			if (MapUtil.isEmpty(this.headerAlias)) {
  				rowMap = BeanUtil.beanToMap(rowBean, new LinkedHashMap<String, Object>(), false, false);
  			} else {
  				// 别名存在情况下按照别名的添加顺序排序Bean数据
  				rowMap = BeanUtil.beanToMap(rowBean, new TreeMap<String, Object>(getInitedAliasComparator()), false, false);
  			}
  		} else {
  			// 其它转为字符串默认输出
  			return writeRow(CollUtil.newArrayList(rowBean), isWriteKeyAsHead);
  		}
  		return writeRow(rowMap, isWriteKeyAsHead);
  	}
docs: 写出一行，根据rowBean数据类型不同，写出情况如下：
  
  <pre>
  1、如果为Iterable，直接写出一行
  2、如果为Map，isWriteKeyAsHead为true写出两行，Map的keys做为一行，values做为第二行，否则只写出一行values
  3、如果为Bean，转为Map写出，isWriteKeyAsHead为true写出两行，Map的keys做为一行，values做为第二行，否则只写出一行values
  </pre>
  
  @param rowBean 写出的Bean
  @param isWriteKeyAsHead 为true写出两行，Map的keys做为一行，values做为第二行，否则只写出一行values
  @return this
  @see #writeRow(Iterable)
  @see #writeRow(Map, boolean)
  @since 4.1.5