我们现在在写一个类似于考核老师的网上评分系统。
     要求把某个员工的去年各个方面的平均成绩与今年的相比较。
     导出excel的同时,把两年的数据一折线图的方式显示出来。我们的大体思想是,定义一个excel模板,里面有显示数据与图表的范围。所有的都套用这个模板。可是,每次读模板的时候,只能显示出数据。还读不出模板。

解决方案 »

  1.   

    http://www.java2000.net/p11647
      

  2.   

    没有像你这样使用模板来处理。你不就是想把图片也导到Excel中吗~~?如果使用的是Apache POI 的话自身带有一个生成图片的方法。/*
     * 生成一张图片的方法
     */
    public static void getCreateImgOne(Workbook wb, Sheet sheet,
    Drawing drawing, CreationHelper helper, ExcelParamter ep) {
    try {
    // -----生成第一张图
    byte[] bytes;
    InputStream is = new FileInputStream(ep.getFilename());
    bytes = IOUtils.toByteArray(is);
    int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
    is.close();
    // 添加图片形状
    ClientAnchor anchor = helper.createClientAnchor();
    // 设置左上角的图片,设置图片显示
    anchor.setCol1(ep.getCol());// 设置距左边的距离(数字代表几个单元格)
    anchor.setRow1(ep.getRow());// 设置距上边的距离(数字代表几个单元格)
    Picture pict = drawing.createPicture(anchor, pictureIdx);
    // auto-size picture relative to its top-left corner 图片相对于左上角
    pict.resize();
    // -----结束
    } catch (IOException e) {
    e.printStackTrace();
    }
    }几行代码就可以搞定...
      

  3.   

    这个是用的Apache的,怎么控制生成什么样的图片?谢了
      

  4.   

    首先有ExcelParamter.java,这是一个JavaBean类,用于传递参数。
    图片生成之后,导出Excel时:String tempDirName = System.getProperty("java.io.tmpdir");//获取临时文件路径
    String filename1 = ParamUtils.getParameter(request, "filename","");
    if (!filename1.equals("")) {
    filename1 = tempDirName + "\\" + filename1;//图片1
    }
    ExcelParamter ep = new ExcelParamter();
    ep.setFilename1(filename1);//传入图片
    ep.setImgnum(1);
    //图片设定,你自己根据需要设置
    ep.setCol1(2);//图片距左边的单元格数
    ep.setRow1(listrow1.size() + 3);//图片距上面的行数//生成EXCEL文件
    MendExcel.getExcelData(response.getOutputStream(), ep);
    MendExcel.java就是标准的POI类
    上面贴出的生成图片的方法是其一个方法,里面有一句:
    InputStream is = new FileInputStream(ep.getFilename());