将数据写到EXCEL中并导出

通过界面 按钮点击导出数据。

利用springmvc 后端代码

工具类----list表示要导出的数据集合、titlemap是表头、title表示导出时的文件名

public static void creatExcel(List<?> list,Map<String, String> titlemap,String title,HttpServletResponse response){
		//
		HSSFWorkbook workbook=new HSSFWorkbook();
		//创建表格
		HSSFSheet sheet=workbook.createSheet();
		//
		HSSFRow titleRow = sheet.createRow(0);
		Set<String> key=titlemap.keySet();
		int k=0;
		//设置表头
		for (String cell : key) {
			HSSFCell textcell = titleRow.createCell(k);
			textcell.setCellValue(titlemap.get(cell));
            k++;
		}
		try {
	          int i=1;
	          //将集合对象循环取出插入到excel中
	          for (Object obj : list) {
	            HSSFRow textRow = sheet.createRow(i);
	            int j=0;
	            for (String entry:titlemap.keySet()) {
	            String method = "get" + entry;
	            //利用反射获取对象的值
	              Method m = obj.getClass().getMethod(method, null);
	              String value =   m.invoke(obj, null).toString();
	              HSSFCell textcell = textRow.createCell(j);
	              textcell.setCellValue(value);
	              j++;
	            }
	            i++;
	          }
	          UUID uuid = UUID.randomUUID();
	          String filedisplay = URLEncoder.encode(title+".xls","utf-8");
	          //web项目,1、设置下载框的弹出(设置response相关参数);2、通过httpservletresponse.getOutputStream()获取
	          //设置下载弹框,设置下载文件名
	          response.setContentType("application/vnd.ms-excel;charset=utf-8");
	          response.setHeader("Content-Disposition", "attachment;filename="+filedisplay);
	          OutputStream out = response.getOutputStream();
	          workbook.write(out);
	          out.close();
	        }
	        catch (Exception e) {
	          e.printStackTrace();
	        }
		
	}

前台效果

excel内容展示

excel格式字体大小都可以通过java设置,具体还需要进一步学习。

猜你喜欢

转载自blog.csdn.net/weixin_42174555/article/details/82985303