}
private ExcelWriter createExcelWriterInner(Class<? extends ExcelWriter> clazz, String writeTemplateName, String... sheets){
ExcelWriter excelWriter = null;
if(clazz == null)
excelWriter = new DefaultExcelWriter();
else{
try {
excelWriter = (ExcelWriter)clazz.newInstance();
} catch (InstantiationException e) {
throw new RuntimeException("Initiate ExcelWriter[" + clazz + "] failure");
} catch (IllegalAccessException e) {
throw new RuntimeException("Initiate ExcelWriter[" + clazz + "] failure");
}
}
ExcelManipulatorDefinition definition = new ExcelManipulatorDefinition();
for(String sheet: sheets){
ExcelSheet sheetDefinition = getExcelSheet(sheet);
definition.getExcelSheets().add(sheetDefinition);
}
excelWriter.setDefinition(definition);
if(writeTemplateName != null){
if(excelWriter instanceof DefaultExcelWriter){
DefaultExcelWriter dew = (DefaultExcelWriter)excelWriter;
dew.initBufferedTemplate(Thread.currentThread().getContextClassLoader()
.getResourceAsStream(writeTemplateName));
}{
//for other customizations
}
}