private void geneExcel(List<?> list, HttpServletRequest request, HttpServletResponse response) {
try {
String url = request.getServletContext().getRealPath("upload");
File p = new File(url);
if (!p.exists()) {
p.mkdirs();
}
String childName = "";
if (list.size() > 0) {
Object object = list.get(0);
if (object instanceof DingDan) {
childName = "dingdan.xlsx";
} else if (object instanceof Record) {
childName = "record.xlsx";
} else if (object instanceof ZhuangTai) {
childName = "zhuangtai.xlsx";
} else {
childName = "a.xlsx";
}
} else {
childName = "a.xlsx";
}
File file = new File(p, childName);
file.createNewFile();
// System.err.println(file.getPath());
System.out.println(file.length());
String fileName = file.getName();
Workbook workbook = getWorkbook(fileName);
Sheet sheet = workbook.createSheet("a");
int i = 0;
System.out.println(list.size());
for (Object object : list) {
Row row = sheet.createRow(i);
if (object instanceof DingDan) {
DingDan dd = (DingDan) object;
setDingDan(row, dd);
} else if (object instanceof Record) {
Record r = (Record) object;
setRecord(row, r);
} else if (object instanceof ZhuangTai) {
ZhuangTai zt = (ZhuangTai) object;
setZhuangTai(row, zt);
}
i++;
}
workbook.write(new FileOutputStream(file));
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private Workbook getWorkbook(String fileName) {
Workbook workbook = null;
if (fileName.endsWith("xls")) {
workbook = new HSSFWorkbook();
} else if (fileName.endsWith("xlsx")) {
workbook = new XSSFWorkbook();
}
return workbook;
}
private void setZhuangTai(Row row, ZhuangTai zt) {
for (int i = 0; i < 8; i++) {
Cell cell = row.createCell(i);
switch (i) {
case 0:
cell.setCellValue(zt.getDanHao());
break;
case 1:
cell.setCellValue(zt.getXuHao());
break;
case 2:
cell.setCellValue(zt.getDiDian());
break;
case 3:
cell.setCellValue(zt.getXiangQing());
break;
case 4:
cell.setCellValue(zt.getShiJian());
break;
case 5:
break;
case 6:
break;
case 7:
break;
}
}
}
private void setDingDan(Row row, DingDan dd) {
for (int j = 0; j < 12; j++) {
Cell cell = row.createCell(j);
ShenFenZheng shenFenZheng = dd.getShenFenZheng();
if (shenFenZheng == null) {
shenFenZheng = new ShenFenZheng();
}
switch (j) {
case 0:
cell.setCellValue(dd.getHuaYunDanHao());
break;
case 1:
cell.setCellValue(dd.getYunDaDanHao());
break;
case 2:
cell.setCellValue(dd.getShangPin());
break;
case 3:
cell.setCellValue(dd.getShouJianRenXingMing());
break;
case 4:
cell.setCellValue(dd.getShouJianRenDianHua());
break;
case 5:
cell.setCellValue(dd.getXiaDanShiJian());
break;
case 6:
cell.setCellValue(dd.getZhuangTais().size());
break;
case 7:
cell.setCellValue(shenFenZheng.getUsername());
break;
case 8:
cell.setCellValue(shenFenZheng.getIdcard());
break;
case 9:
cell.setCellValue(shenFenZheng.getUploadtime());
break;
case 10:
cell.setCellValue(shenFenZheng.getPhone());
break;
}
shenFenZheng = null;
}
}
private List<String> getDanHaoList(String hYDanHao) {
List<String> dhs = new ArrayList<>();
StringBuilder danhaos = new StringBuilder();
if (hYDanHao != null) {
hYDanHao = hYDanHao.replaceAll("\s", "");
String[] dingDans = hYDanHao.split("[,,]*[\n|\r\n|\r|\n\r][,,]*");
int i = 0;
System.out.println("dingDans.length=" + dingDans.length);
for (String dingDan : dingDans) {
danhaos.append(dingDan);
danhaos.append(",");
if (i % 16 == 15 || i == dingDans.length - 1) {
dhs.add(danhaos.toString());
danhaos = new StringBuilder();
}
i++;
}
}
return dhs;
}