java导出excel表格--源码

 import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zfkj.utils.oConvertUtils;

//Controller层得处理    (导出)

   @RequestMapping(params = "outexcel") //前台使用ajax请求得方法名
    @ResponseBody //使用得ajax请求
    public void outexcel(HttpServletRequest request,HttpServletResponse response) throws IOException{
         //查出所有要导出得数据
        List<Map<String, Object>> list = familyService.queryList();
        //设置类型(不需要改动)
        response.setContentType("application/msexcel");
        //设置头部信息(不需要改动)
        response.addHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode(" 文件名","UTF-8")+".xlsx");
        //构造对象
        XSSFWorkbook wb = new XSSFWorkbook();
         //创建Sheet
        Sheet sheet = wb.createSheet("家庭组信息");
        //3.添加行(列可自行添加,列和行要匹配)
        Row row = sheet.createRow((short)0);
        row.createCell(0).setCellValue(" 列名");
        row.createCell(1).setCellValue(" 列名");
        row.createCell(2).setCellValue(" 列名");
        row.createCell(3).setCellValue(" 列名");
        int i=1;
        //循环list,把数据放入到对应得行中(行可自行添加)
        for(Map<String,Object> map:list){
            Row row1 = sheet.createRow((short)i);
            row1.createCell(0).setCellValue(i++); //序号自动加一
            row1.createCell(1).setCellValue(oConvertUtils.getString(map.get(" key值")));
            row1.createCell(2).setCellValue(oConvertUtils.getString(map.get(" key值")));
            row1.createCell(3).setCellValue(oConvertUtils.getString(map.get(" key值")));

        }

        OutputStream os = response.getOutputStream();   //创建输出流
        wb.write(os); //写回
        os.close(); //关闭流
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值