• 在Java的程序中,将内容写入Excel,并将Excel表格下载


    //创建Servlet

    @WebServlet("/DownServlet")   //注解
    public class DownServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public DownServlet() {
    super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 下载Excel操作--导出Excel
    //excel:存放数据(以二维表的形式存放)
    //二维表:列(cols) 单元格
    String[]cols={"username","pwd","salary"};//设置列名
    String[]labers={"用户名","密码","工资"};//设置列名字
    List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();//(存放map集合)
    Map<String, Object> map=new HashMap<String, Object>();//定义object类型(存放键值对)
    map.put("username", "东东");
    map.put("pwd", "123");
    map.put("salary", 2000);
    list.add(map);
    response.setHeader("Content-disposition", "attachment;filename=empInfo.xls");//激活文件下载对话框(*重点*)
    OutputStream out=response.getOutputStream();//?输出流写入
    XSSFWorkbook workbook = new XSSFWorkbook();  //java导出Excel的工具类
    XSSFSheet sheet = workbook.createSheet("emp");  // 创建sheet页
    // 每个页中有行,创建行 按照索引index顺序创建
    XSSFRow row = sheet.createRow(0);// index 从0开始,获取该页的第一行
    // 在把我们对应的数据插入到Excel中的sheet页中
    for (int i = 0; i < labers.length; i++) {
    // 单元格
    XSSFCell cell = row.createCell(i);//获取第一行的单元格
    cell.setCellValue(labers[i]);// 把label中的值出入到到单元格中
    }// 此时把表格中的列标题的值放到了Excel的表中
    // 把对应的列的值放入到单元格中
    for (int i = 0; i < list.size(); i++) {
    row = sheet.createRow(i + 1);// 因为第一行放的是列标题,所以从第二行开始
    Map<String, Object> map2 = list.get(i);
    for (int j = 0; j < cols.length; j++) {
    XSSFCell cell = row.createCell(j);
    cell.setCellValue(map2.get(cols[j]).toString());// map.get(key)-->获取到value值,将获取的value值放进单元格中
    }
    }
    try {
    workbook.write(out);// 使用文件流写入(不是很懂)
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
    }

    }

  • 相关阅读:
    SSO单点登录机制
    Web应用中Service层获取request对象 | RequestContextHolder的使用
    J2EE中数据字典的使用详解
    Redis高级(事务,持久化,主从复制读写分离,以及安全设置)
    Redis的五种数据类性以及对应的操作命令
    Redis客户端与基本命令
    VMware15安装CentOS8
    用内置的库turtle来画一朵花,python3
    python之经典猜数字
    python,寻找班级里面名字最长的人
  • 原文地址:https://www.cnblogs.com/sunda847882651/p/9489744.html
Copyright © 2020-2023  润新知