java 生成excel表传给前端下载

本文介绍如何在Java后端生成Excel文件,并通过HTTP响应返回给前端,以便用户可以下载。内容涵盖使用Apache POI库创建Excel,设置HTTP响应头,以及前端如何处理接收的文件流。
摘要由CSDN通过智能技术生成

js部分:
        var jsonstr=getSearchSel(os);
        var str = "";//传参数
        for(var i in jsonstr){
            if(jsonstr[i]!=""){
                str += i+"="+jsonstr[i]+"&";
            }
        }
        str = str.substr(0, str.length - 1); 
        var url = "/QAdevices/ExcelServlet?" + str;
        window.open(url);
java端:

 public void doGet(HttpServletRequest request, HttpServletResponse response)
	      throws ServletException, IOException {
		  StringBuilder jsonstr = new StringBuilder();//转化成json
		  jsonstr.append("{");
		  String reqstr = request.getQueryString();//获取请求参数
		  if(!"".equals(reqstr) &&reqstr !=null){

			  String [] stringArr= reqstr.split("&");	
			  for(int i = 0;i<stringArr.length;i++){
				  String [] strArr = stringArr[i].split("=");
				 
				  jsonstr.append("\""+strArr[0]+"\":"+"\""+strArr[1]+"\""+",") ;			 
			  }
			  jsonstr.deleteCharAt(jsonstr.length()-1);
		  }
		  jsonstr.append("}");	
		  String filename =getExcelPath() ;
		  List<Map<String, Object>> searchlist = ServerInit.managerAction.searchDeviceInfoByConditions3(jsonstr.toString());	
			
		  if(searchlist!=null){			
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Hutool将List数据生成Excel的流返回前端,可以参考以下步骤: 1. 引入Hutool的Excel模块依赖,可以通过在pom.xml文件中添加以下依赖来实现: ``` <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-poi</artifactId> <version>5.3.6</version> </dependency> ``` 2. 创建需要导出的数据 假设我们有一个User类,我们需要将多个User对象导出为Excel格,我们可以先创建一个List<User> userList,将需要导出的数据存入该列。 ``` List<User> userList = new ArrayList<>(); userList.add(new User("张三", "男", 20)); userList.add(new User("李四", "女", 22)); userList.add(new User("王五", "男", 25)); ``` 3. 使用ExcelWriter将数据写入Excel文件并返回流 创建一个ExcelWriter对象,调用write方法将数据写入Excel文件中,并将Excel文件转换成流返回前端。以下是示例代码: ``` // 创建需要导出的数据 List<User> userList = new ArrayList<>(); userList.add(new User("张三", "男", 20)); userList.add(new User("李四", "女", 22)); userList.add(new User("王五", "男", 25)); // 使用ExcelWriter将数据写入Excel文件并返回流 ByteArrayOutputStream out = new ByteArrayOutputStream(); ExcelWriter writer = ExcelUtil.getWriter(); // 设置头 writer.addHeaderAlias("name", "姓名"); writer.addHeaderAlias("gender", "性别"); writer.addHeaderAlias("age", "年龄"); // 写入数据 writer.write(userList); // 将Excel文件转换成流返回前端 writer.flush(out, true); writer.close(); // 返回流给前端 byte[] bytes = out.toByteArray(); return new ByteArrayInputStream(bytes); ``` 在以上示例代码中,我们创建了一个ExcelWriter对象,并调用addHeaderAlias方法设置头别名,调用write方法将userList中的数据写入Excel文件中,最后调用flush方法将Excel文件转换成流返回前端。最终将流返回前端的代码为: ``` byte[] bytes = out.toByteArray(); return new ByteArrayInputStream(bytes); ``` 完整代码如下: ``` public class ExcelExportDemo { public static void main(String[] args) throws IOException { // 创建需要导出的数据 List<User> userList = new ArrayList<>(); userList.add(new User("张三", "男", 20)); userList.add(new User("李四", "女", 22)); userList.add(new User("王五", "男", 25)); // 使用ExcelWriter将数据写入Excel文件并返回流 ByteArrayOutputStream out = new ByteArrayOutputStream(); ExcelWriter writer = ExcelUtil.getWriter(); // 设置头 writer.addHeaderAlias("name", "姓名"); writer.addHeaderAlias("gender", "性别"); writer.addHeaderAlias("age", "年龄"); // 写入数据 writer.write(userList); // 将Excel文件转换成流返回前端 writer.flush(out, true); writer.close(); // 返回流给前端 byte[] bytes = out.toByteArray(); ServletOutputStream outputStream = response.getOutputStream(); outputStream.write(bytes); outputStream.flush(); outputStream.close(); } } ``` 运行完以上代码后,你将获得一个Excel文件的流,可以使用该流将Excel文件的内容返回前端
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值