一、control返回,封装的addExcel
res.addExcel(fileName, sheetMap);
二、具体的addExcel方法
IZrarResponse addExcel(String var1, Map<String, List> var2, Map<String, List<int[]>>... var3);
public IZrarResponse addExcel(String excelName, Map<String, List> sheetMap, Map<String, List<int[]>>... hbxx) {
this.contentType = "application/vnd.ms-excel";
this.workbook = SaveAsExcelOfMicrosoftOffice.gethbWorkbook(sheetMap, hbxx);
ThreadPool.add("excel", excelName);
return this;
}
public static HSSFWorkbook gethbWorkbook(Map<String, List> sheetMap, Map<String, List<int[]>>... hbxx) {
return sheetMap == null ? null : EditMicrosoftOffice.writerToExcel(sheetMap, hbxx);
}
三 、核心导出Excel代码
public static HSSFWorkbook writerToExcel(Map<String, List> sheetMap, Map<String, List<int[]>>... hbxx) {
if (sheetMap != null && sheetMap.size() > 0) {
workbook = createExcel();
Iterator it = sheetMap.keySet().iterator();//对sheetMap遍历
while(true) {
String sheetName;
do {
do {
if (!it.hasNext()) {
return workbook;
}
sheetName = (String)it.next();
Iterator sheetIt = ((List)sheetMap.get(sheetName)).iterator();
sheet = createSheet(workbook, sheetName);
HSSFCellStyle cellStyle = setWorkbookStyle(workbook);
int var6 = 0;
while(sheetIt.hasNext()) {
HSSFRow row = createRow(sheet, var6++);
Iterator cellIt = ((List)sheetIt.next()).iterator();
int var9 = 0;
while(cellIt.hasNext()) {
HSSFCell cell = createCell(row, var9++);
cell.setCellStyle(cellStyle);
setCellValue(cell, cellIt.next());
}
}
} while(hbxx == null);
} while(hbxx.length <= 0);
List<int[]> hbxxList = (List)hbxx[0].get(sheetName);
Iterator var13 = hbxxList.iterator();
while(var13.hasNext()) {
int[] obj = (int[])var13.next();
if (obj.length == 4) {
hbCell(obj[0], obj[1], obj[2], obj[3]);
}
}
}
} else {
return workbook;
}
}