public <T extends com.jfinal.plugin.activerecord.Model> Workbook modelDataImport(String path,int startRow,String[] attrs,List<T> list) {
File file = new File(path);
if(!file.exists()){
throw new RuntimeException("要读取的文件不存在");
}
InputStream is;
String filename = file.getName();
String str = filename.toLowerCase();
if(filename.toLowerCase().endsWith("xls")){
HSSFWorkbook hssfWorkbook = null;
HSSFSheet hssfSheet;
try {
is = new FileInputStream(file);
hssfWorkbook = new HSSFWorkbook(is);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
hssfSheet = hssfWorkbook.getSheetAt(0);
// Read the Row
for (int rowIndex=startRow;rowIndex<list.size()+startRow;rowIndex++) {
HSSFRow row = hssfSheet.createRow(rowIndex);
Model model = list.get(rowIndex);
for(int i=0; i<attrs.length; i++){
row.createCell(i).setCellValue(model.getStr(attrs[rowIndex]));
}
}
if(list.size() == 0) {
hssfSheet.removeRow(hssfSheet.getRow(startRow));
}
return hssfWorkbook;
}else if(filename.toLowerCase().endsWith("xlsx")){
XSSFWorkbook xssfWorkbook = null;
XSSFSheet xssfSheet;
try {
is = new FileInputStream(file);
xssfWorkbook = new XSSFWorkbook(is);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
xssfSheet = xssfWorkbook.getSheetAt(0);
XSSFCellStyle templateStyle = xssfSheet.getRow(startRow).getRowStyle();
// Read the Row
for (int rowIndex=startRow; rowIndex<list.size()+startRow; rowIndex++) {
XSSFRow row = xssfSheet.createRow(rowIndex);
Model model = list.get(rowIndex-startRow);
for(int i=0; i<attrs.length; i++){
XSSFCell cell = row.createCell(i);
cell.setCellValue(model.getStr(attrs[i]));
cell.setCellStyle(templateStyle);
}
}
if(list.size() == 0) {
xssfSheet.removeRow(xssfSheet.getRow(startRow));
}
return xssfWorkbook;
}else{
return null;
}
}