// Path: excel/src/main/java/com/bing/excel/core/BingExcelEvent.java
// @Deprecated
// public interface BingExcelEvent {
// 
// 	
// 	<T> void readFile(File file, Class<T> clazz, int startRowNum,BingReadListener listener) throws Exception ;
// 	/**
// 	 * 根据condition条件读取相应的sheet到list对象
// 	 * @param file
// 	 * @param condition
// 	 * @param listener
// 	 * @return
// 	 */
// 	<T> void readFile(File file, ReaderCondition<T> condition,BingReadListener listener) throws Exception ;
// 
// 	
// 	 /**
// 	  * 读取所有sheet表格，到list
// 	 * @param file
// 	 * @param conditions 每个表格对应的condition
// 	 * @return
// 	 */
// 	void readFileToList(File file,ReaderCondition[] conditions,BingReadListener listener) throws Exception;
// 	 
// 	 
// 
// 	/**
// 	 * 读取第一个sheet到SheetVo
// 	 * @param stream
// 	 * @param condition
// 	 * @return
// 	 */
// 	<T> void readStream(InputStream stream,ReaderCondition<T> condition,BingReadListener listener) throws Exception;
// 	<T> void readStream(InputStream stream,Class<T> clazz, int startRowNum,BingReadListener listener) throws Exception;
// 
// 	 void readStreamToList(InputStream stream,  ReaderCondition[] condition,BingReadListener listener) throws Exception;
// 	
// 	 
// 	 BingWriterHandler writeFile(File file)throws FileNotFoundException;
// 		
// 	 BingWriterHandler  writeFile(String path);
// 	// BingWriterHandler  writeFile(OutputStream stream);
// }
// 
// Path: excel/src/main/java/com/bing/excel/core/BingExcelEventBuilder.java
// @Deprecated
// public class BingExcelEventBuilder implements ExcleBuilder<BingExcelEvent> {
// 	private final ConverterHandler defaultLocalConverterHandler = new LocalConverterHandler();
// 
// 	private BingExcelEvent bingExcelEvent;
// 
// 	/**
// 	 * <p>
// 	 * Title: <／p>
// 	 * <p>
// 	 * Description:<／p>
// 	 */
// 	private BingExcelEventBuilder() {
// 
// 	}
// 
// 	public static ExcleBuilder<BingExcelEvent> toBuilder() {
// 
// 		return new BingExcelEventBuilder();
// 
// 	}
// 	/**
// 	 * @return BingExcelEvent实例
// 	 */
// 	public static BingExcelEvent builderInstance(){
// 		return (new BingExcelEventBuilder()).builder();
// 	}
// 	@Override
// 	public ExcleBuilder<BingExcelEvent> registerFieldConverter(Class<?> clazz,
// 			FieldValueConverter converter) {
// 		
// 		defaultLocalConverterHandler.registerConverter(clazz, converter);
// 			
// 		return this;
// 	}
// 
// 	@Deprecated
// 	@Override
// 	public BingExcelEvent builder() {
// 		if (bingExcelEvent == null) {
// 			bingExcelEvent = new BingExcelEventImpl(defaultLocalConverterHandler);
// 		}
// 
// 		return this.bingExcelEvent;
// 	}
// 	@Override
// 	public BingExcelEvent build() {
// 		if (bingExcelEvent == null) {
// 			bingExcelEvent = new BingExcelEventImpl(defaultLocalConverterHandler);
// 		}
// 
// 		return this.bingExcelEvent;
// 	}
// 
// 	@Override
// 	public ExcleBuilder<BingExcel> addFieldConversionMapper(Class<?> clazz, String filedName,
// 			int index) {
// 		return null;
// 	}
// 
// 	@Override
// 	public ExcleBuilder<BingExcel> addFieldConversionMapper(Class<?> clazz, String filedName,
// 			int index, String alias) {
// 		return null;
// 	}
// 
// 	@Override
// 	public ExcleBuilder<BingExcel> addFieldConversionMapper(Class<?> clazz, String filedName,
// 			int index, String alias, FieldValueConverter converter) {
// 		return null;
// 	}
// 
// 	@Override
// 	public ExcleBuilder<BingExcel> addClassNameAlias(Class<?> clazz, String alias) {
// 		return null;
// 	}
// }
// 
// Path: excel/src/main/java/com/bing/excel/core/rw/BingWriterHandler.java
// public interface BingWriterHandler {
// 	/**
// 	 * 写入对象到excel表，默认同种对象在同一个sheet页面，不同对象另起新的sheet
// 	 * @param obj
// 	 */
// 	void writeLine(Object obj);
// 	
// 	/**
// 	 * 单页最大行数
// 	 * @param max
// 	 */
// 	void setMaxLineForSheet(int max);
// 	/**
// 	 * 输出文件。
// 	 */
// 	void close(); 
// }


import org.apache.commons.lang3.RandomStringUtils;
import org.junit.Before;
import org.junit.Test;
import com.bing.excel.annotation.CellConfig;
import com.bing.excel.annotation.OutAlias;
import com.bing.excel.core.BingExcelEvent;
import com.bing.excel.core.BingExcelEventBuilder;
import com.bing.excel.core.rw.BingWriterHandler;
import com.google.common.base.MoreObjects;
package com.chinamobile.excel;



/**
 * @author shizhongtao
 */
public class WriteTest4 {
  BingExcelEvent bing;

  @Before
  public void before() {
    bing = BingExcelEventBuilder.builderInstance();
  }

  @Test
  public void testWrite() {
    /**
     * 对于数据量非常大时候，注意一点就是数据绝对不能放入到内存， 你如果想初始化一个长多为百万级的list，劝你趁早放弃
     */
// Path: excel/src/main/java/com/bing/excel/core/BingExcelEvent.java
// @Deprecated
// public interface BingExcelEvent {
// 
// 	
// 	<T> void readFile(File file, Class<T> clazz, int startRowNum,BingReadListener listener) throws Exception ;
// 	/**
// 	 * 根据condition条件读取相应的sheet到list对象
// 	 * @param file
// 	 * @param condition
// 	 * @param listener
// 	 * @return
// 	 */
// 	<T> void readFile(File file, ReaderCondition<T> condition,BingReadListener listener) throws Exception ;
// 
// 	
// 	 /**
// 	  * 读取所有sheet表格，到list
// 	 * @param file
// 	 * @param conditions 每个表格对应的condition
// 	 * @return
// 	 */
// 	void readFileToList(File file,ReaderCondition[] conditions,BingReadListener listener) throws Exception;
// 	 
// 	 
// 
// 	/**
// 	 * 读取第一个sheet到SheetVo
// 	 * @param stream
// 	 * @param condition
// 	 * @return
// 	 */
// 	<T> void readStream(InputStream stream,ReaderCondition<T> condition,BingReadListener listener) throws Exception;
// 	<T> void readStream(InputStream stream,Class<T> clazz, int startRowNum,BingReadListener listener) throws Exception;
// 
// 	 void readStreamToList(InputStream stream,  ReaderCondition[] condition,BingReadListener listener) throws Exception;
// 	
// 	 
// 	 BingWriterHandler writeFile(File file)throws FileNotFoundException;
// 		
// 	 BingWriterHandler  writeFile(String path);
// 	// BingWriterHandler  writeFile(OutputStream stream);
// }
// 
// Path: excel/src/main/java/com/bing/excel/core/BingExcelEventBuilder.java
// @Deprecated
// public class BingExcelEventBuilder implements ExcleBuilder<BingExcelEvent> {
// 	private final ConverterHandler defaultLocalConverterHandler = new LocalConverterHandler();
// 
// 	private BingExcelEvent bingExcelEvent;
// 
// 	/**
// 	 * <p>
// 	 * Title: <／p>
// 	 * <p>
// 	 * Description:<／p>
// 	 */
// 	private BingExcelEventBuilder() {
// 
// 	}
// 
// 	public static ExcleBuilder<BingExcelEvent> toBuilder() {
// 
// 		return new BingExcelEventBuilder();
// 
// 	}
// 	/**
// 	 * @return BingExcelEvent实例
// 	 */
// 	public static BingExcelEvent builderInstance(){
// 		return (new BingExcelEventBuilder()).builder();
// 	}
// 	@Override
// 	public ExcleBuilder<BingExcelEvent> registerFieldConverter(Class<?> clazz,
// 			FieldValueConverter converter) {
// 		
// 		defaultLocalConverterHandler.registerConverter(clazz, converter);
// 			
// 		return this;
// 	}
// 
// 	@Deprecated
// 	@Override
// 	public BingExcelEvent builder() {
// 		if (bingExcelEvent == null) {
// 			bingExcelEvent = new BingExcelEventImpl(defaultLocalConverterHandler);
// 		}
// 
// 		return this.bingExcelEvent;
// 	}
// 	@Override
// 	public BingExcelEvent build() {
// 		if (bingExcelEvent == null) {
// 			bingExcelEvent = new BingExcelEventImpl(defaultLocalConverterHandler);
// 		}
// 
// 		return this.bingExcelEvent;
// 	}
// 
// 	@Override
// 	public ExcleBuilder<BingExcel> addFieldConversionMapper(Class<?> clazz, String filedName,
// 			int index) {
// 		return null;
// 	}
// 
// 	@Override
// 	public ExcleBuilder<BingExcel> addFieldConversionMapper(Class<?> clazz, String filedName,
// 			int index, String alias) {
// 		return null;
// 	}
// 
// 	@Override
// 	public ExcleBuilder<BingExcel> addFieldConversionMapper(Class<?> clazz, String filedName,
// 			int index, String alias, FieldValueConverter converter) {
// 		return null;
// 	}
// 
// 	@Override
// 	public ExcleBuilder<BingExcel> addClassNameAlias(Class<?> clazz, String alias) {
// 		return null;
// 	}
// }
// 
// Path: excel/src/main/java/com/bing/excel/core/rw/BingWriterHandler.java
// public interface BingWriterHandler {
// 	/**
// 	 * 写入对象到excel表，默认同种对象在同一个sheet页面，不同对象另起新的sheet
// 	 * @param obj
// 	 */
// 	void writeLine(Object obj);
// 	
// 	/**
// 	 * 单页最大行数
// 	 * @param max
// 	 */
// 	void setMaxLineForSheet(int max);
// 	/**
// 	 * 输出文件。
// 	 */
// 	void close(); 
// }


// Path: excel/src/test/java/com/chinamobile/excel/WriteTest4.java
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.Before;
import org.junit.Test;
import com.bing.excel.annotation.CellConfig;
import com.bing.excel.annotation.OutAlias;
import com.bing.excel.core.BingExcelEvent;
import com.bing.excel.core.BingExcelEventBuilder;
import com.bing.excel.core.rw.BingWriterHandler;
import com.google.common.base.MoreObjects;

package com.chinamobile.excel;



/**
 * @author shizhongtao
 */
public class WriteTest4 {
  BingExcelEvent bing;

  @Before
  public void before() {
    bing = BingExcelEventBuilder.builderInstance();
  }

  @Test
  public void testWrite() {
    /**
     * 对于数据量非常大时候，注意一点就是数据绝对不能放入到内存， 你如果想初始化一个长多为百万级的list，劝你趁早放弃
     */
    BingWriterHandler writerHandler = bing.writeFile("/Users/shi/workspace/student.xlsx");