当前位置: 移动技术网 > IT编程>开发语言>Java > java web将数据导出为Excel格式文件代码片段

java web将数据导出为Excel格式文件代码片段

2019年07月22日  | 移动技术网IT编程  | 我要评论

瓷都起名网,su33,超m自缚痴女下载

本文实例为大家分享了java web将数据导出为excel格式文件的具体代码,供大家参考,具体内容如下

1、jsp代码

<input type="button" class="btn btn-info" onclick="getverexcel();" value="导出为excel文件" />

2、js代码

function getverexcel() {
  window.location.href = '/pms/jsp/version/getprdverlistexcel?page='
      + $("#getpage").html() + '&key=' + $("#select").val();
}

3、java代码

  /**
   * 
   * purpose :将产品版本列表导出为excel文件
   * @param req
   *      请求
   * @param resp
   *      应答
   * @param page
   *      当前页数
   * @param key
   *      查询条件
   * @return
   */
  @requestmapping("getprdverlistexcel")
  public void getexcel(httpservletrequest req, httpservletresponse resp, integer page, string key) {
    // 设置文件的mime类型
    resp.setcontenttype("application/vnd.ms-excel");

    // 得到所有的数据
    list<version> verlist = prdversionser.getallprdversion(key);
    // 若没有数据,则给用户提示
    if (verlist.size() == 0) {
      req.setattribute("getfilemsg", "没有符合条件的信息!");
      req.setattribute("select", key);
      try {
        req.getrequestdispatcher("/jsp/version/ver_list.jsp").forward(req, resp);
      } catch (exception e) {
        e.printstacktrace();
      }
    } else {
      // 存储编码后的文件名
      string name = "name";
      // 存储文件名称
      string n = "";
      if (key != "") {
        n = verlist.get(0).getprdname() + "的版本列表";
      } else {
        n = "产品版本列表";
      }
      try {
        name = urlencoder.encode(n, "utf-8");
      } catch (unsupportedencodingexception e1) {
        e1.printstacktrace();
      }
      resp.setheader("content-disposition",
          "attachment;filename=" + name + ".xls;filename*=utf-8''" + name + ".xls");

      system.out.println("key:" + key);

      // 从session中删除saveexcelmsg属性
      req.getsession().removeattribute("saveexcelmsg");
      // 定义一个输出流
      servletoutputstream sos = null;

      // 创建一个工作簿
      hssfworkbook wb = new hssfworkbook();
      // 创建一个工作表
      hssfsheet sheet = null;
      if (key != "") {
        sheet = wb.createsheet(verlist.get(0).getprdname() + "的版本信息");
      } else {
        sheet = wb.createsheet("产品版本信息");
      }
      // 返回数据格式对象
      // 从格式对象中获取对应日期格式的编号,如果格式不存在,该方法会为它生成新的编号
      hssfdataformat format = wb.createdataformat();
      short dfnum = format.getformat("yyyy-mm-dd");
      // 创建样式对象
      cellstyle style = wb.createcellstyle();
      // 设置数据格式
      style.setdataformat(dfnum);
      // 创建第一行(表格标题)
      hssfrow row = sheet.createrow(0);
      hssfcell cell = row.createcell(0, hssfcell.cell_type_string);
      if (key != "") {
        cell.setcellvalue(verlist.get(0).getprdname() + "的产品版本列表");
      } else {
        cell.setcellvalue("产品版本列表");
      }

      // 创建第二行(表头)
      row = sheet.createrow(1);
      cell = row.createcell(0, hssfcell.cell_type_string);
      cell.setcellvalue("序号");

      cell = row.createcell(1, hssfcell.cell_type_string);
      cell.setcellvalue("产品名称");

      cell = row.createcell(2, hssfcell.cell_type_string);
      cell.setcellvalue("版本号");

      cell = row.createcell(3, hssfcell.cell_type_string);
      cell.setcellvalue("发布日期");

      cell = row.createcell(4, hssfcell.cell_type_string);
      cell.setcellvalue("版本类型");

      cell = row.createcell(5, hssfcell.cell_type_string);
      cell.setcellvalue("版本描述");

      int num = 1;
      // 遍历输出verlist中的数据,将其存入excel中
      for (int i = 0; i < verlist.size(); i++) {
        row = sheet.createrow(i + 2);
        // 写入序号
        cell = row.createcell(0, hssfcell.cell_type_numeric);
        cell.setcellvalue(num);
        num++;
        // 写入产品名称
        cell = row.createcell(1, hssfcell.cell_type_string);
        cell.setcellvalue(verlist.get(i).getprdname());
        // 写入版本号
        cell = row.createcell(2, hssfcell.cell_type_string);
        cell.setcellvalue(verlist.get(i).getverno());

        // 写入发布日期(日期格式做处理)
        cell = row.createcell(3, hssfcell.cell_type_string);
        // 将样式应用于单元格
        cell.setcellstyle(style);
        cell.setcellvalue(verlist.get(i).getverdate());

        // 写入版本类型
        cell = row.createcell(4, hssfcell.cell_type_string);
        cell.setcellvalue(verlist.get(i).getvertype());

        // 写入版本描述
        cell = row.createcell(5, hssfcell.cell_type_string);
        cell.setcellvalue(verlist.get(i).getverdesc());
      }
      try {
        // 保存到文件中
        sos = resp.getoutputstream();
        wb.write(sos);
      } catch (exception e) {
        e.printstacktrace();
      } finally {
        if (sos != null) {
          try {
            sos.close();
          } catch (ioexception e) {
            e.printstacktrace();
          }
        }
      }
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网