package com.wxkj.yang;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class MakingTable4 {
@SuppressWarnings("unchecked")
public void makingTable(String url,String path,List<?> list1) throws Exception {
Class<Object> clazz = (Class<Object>) Class.forName(url);
List<?> list = list1;
HSSFWorkbook hwb = new HSSFWorkbook();
int length = clazz.getDeclaredFields().length;
Field[] files = clazz.getDeclaredFields();
HSSFSheet hs = hwb.createSheet("sheet1");
HSSFRow row1 = hs.createRow(0);
// 制表头
for (int i = 0; i < length; i++) {
HSSFCell cell = row1.createCell(i);
String str = String.valueOf(files[i].getName());
cell.setCellValue(str);
}
// 表格填充数据
for (int i = 0; i < list.size(); i++) {
Object obj = list.get(i);
HSSFRow row = hs.createRow(i + 1);
for (int j = 0; j < length; j++) {
HSSFCell cell = row.createCell(j);
Field field = clazz.getDeclaredField(files[j].getName());
field.setAccessible(true);
String str = String.valueOf(field.get(obj));
cell.setCellValue(str);
}
}
this.exportExcel(hwb, path);
}
public void exportExcel(HSSFWorkbook hwb,String path) throws Exception{
// 导出文件
OutputStream os = new FileOutputStream(path);
hwb.write(os);
hwb.close();
os.close();
}
}
实现此段代码需要配合poi-3.13.jar包,代码用到了IO、反射、list嵌套实体类