zoukankan      html  css  js  c++  java
  • 在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);
    }

    }

  • 相关阅读:
    外键的创建
    MySQL (1366, "Incorrect string value: '\xF0\x9F\x8E\xAC\xE5\x89...' for column 'description' at row 1")
    python 获取文件路径
    ModuleNotFoundError: No module named 'Crypto'
    Django---错误
    CentOS7系统ifconfig无法使用的解决方法
    NACOS集群搭建遇到的问题
    Mysql连接报错:1130-host ... is not allowed to connect to this MySql server如何处理
    CentOS7 yum方式安装MySQL5.7
    MySQL数据库的全局锁和表锁
  • 原文地址:https://www.cnblogs.com/sunda847882651/p/9489744.html
Copyright © 2011-2022 走看看