Use the apache package to complete the exacle package and download it
import org.apache.poi.xssf.usermodel.*;
public void exportExcel(String headerData, String data, HttpServletResponse response) {
//表头信息
JSONArray jHeaderArr = new JSONArray(headerData);
//数据信息
JSONArray dataArray = new JSONArray(data);
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("Sheet1");
XSSFRow row = sheet.createRow(0);//表头
XSSFCellStyle style = wb.createCellStyle();
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);//创建一个居中格式
//获取所有名称
List<String> list = new ArrayList<String>();
for (int i = 0; i < jHeaderArr.length(); i++) {
XSSFCell cell = row.createCell(i);
JSONObject jHeader = new JSONObject(jHeaderArr.get(i).toString());
cell.setCellValue(jHeader.getString("cname").toString());
list.add(jHeader.getString("ename").toString());
cell.setCellStyle(style);
}
for (int i = 0; i < dataArray.length(); i++) {
JSONObject jo = dataArray.getJSONObject(i);
row= sheet.createRow(i+1);
for (int j = 0; j < list.size(); j++) {
row.createCell(j).setCellValue(jo.getString(list.get(j)));
}
}
try {
OutputStream out = response.getOutputStream();
response.reset();
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
String checkTime = dateFormat.format(now);
String fileName = "数据下载(" + checkTime + ").xlsx";
response.setHeader("Content-Disposition","attachment;filename="+ new String(fileName.getBytes("utf-8"),"ISO-8859-1"));
response.setContentType("application/msexcel");
wb.write(out);
out.close();
wb.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}