zoukankan      html  css  js  c++  java
  • echarts 导出excel

    public ResponseEntity<byte[]> chartExport(HttpServletRequest request, String picinfo, HttpServletResponse response) {
    //类型
    String type = request.getParameter("type");

    try {
    //decodeBase64();
    List<MockTestNetTrend> dataList = JsonUtils.json2List(request.getParameter("mockTestNetTrendList"), MockTestNetTrend.class);
    List<String> cellList = JsonUtils.json2List(request.getParameter("cellList"), String.class);
    // 生成图片
    byte[] picInfoByte = base64TObyte(request, picinfo);
    /* String picPath = "C:\Users\Administrator\Desktop\pic" + ".png";
    File picFile = new File(picPath);//图片文件
    OutputStream picStream = new FileOutputStream(picFile);//图片输出流
    picStream.write(picInfoByte);
    picStream.flush();
    picStream.close();*/


    String outFileName = FileNameUtil.createFileName("xls");
    String exportFileName = type + ".xls";
    //导出路径
    String exportFilePath = CacheUtil.getSysParam(GlobalConstant.COM_PROP_ACCESS_EXPORTPATH);

    // 模板输入流
    Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet();
    int index = 1;

    //创建表头
    createHeader(wb, sheet,cellList);

    //写入数据
    if (!StringUtil.isEmptyList(dataList)) {
    writeData(dataList, wb, sheet, index, type);
    }

    Drawing patri = sheet.createDrawingPatriarch();
    HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0,
    (short) 0, dataList.size() + 2, (short) 5, 25);

    //图通过流的形式插入到excel模板中
    ByteArrayOutputStream outStream = new ByteArrayOutputStream(); // 将图片写入流中
    ByteArrayInputStream in = new ByteArrayInputStream(picInfoByte); //将picInfoByte作为输入流;
    BufferedImage bufferImg = ImageIO.read(in); //将in作为输入流,读取图片存入image中,而这里in可以为ByteArrayInputStream();
    ImageIO.write(bufferImg, "png", outStream); // 利用HSSFPatriarch将图片写入EXCEL

    patri.createPicture(anchor, wb.addPicture(
    outStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
    File outFile = new File(exportFilePath + File.separator + outFileName);
    if (!outFile.getParentFile().exists()) {
    outFile.getParentFile().mkdirs();
    }
    wb.write(new FileOutputStream(outFile));
    outStream.flush();
    outStream.close();
    /* if (picFile.exists()){
    picFile.delete();
    }*/


    return ExportUtil.export(exportFileName, outFile, true);
    } catch (Exception e) {
    e.printStackTrace();
    }

    return null;
    }
  • 相关阅读:
    Linux:PS命令详解与使用
    linux日志守护进程 syslog
    Linux shell 判断字符串为空等常用命令
    Java 中zookeeper操作
    mysql数据库读写分离,主从同步实现方法
    【转】几种Java序列化方式的实现
    如何为SUSE配置IP地址,网关和DNS
    linux中export的作用
    91家纺网,多线程版本待处理
    91家纺网爬虫,不包含多线程登录处理,第三张表格数据没有对接
  • 原文地址:https://www.cnblogs.com/ljsn/p/12792940.html
Copyright © 2011-2022 走看看