java poi 读取excel中的图表

wangxiaojuancui 2009-11-19 11:02:22
我们现在在写一个类似于考核老师的网上评分系统。
要求把某个员工的去年各个方面的平均成绩与今年的相比较。
导出excel的同时,把两年的数据一折线图的方式显示出来。我们的大体思想是,定义一个excel模板,里面有显示数据与图表的范围。所有的都套用这个模板。可是,每次读模板的时候,只能显示出数据。还读不出模板。
...全文
1050 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
海子尘 2009-11-20
  • 打赏
  • 举报
回复

关注!
zl3450341 2009-11-19
  • 打赏
  • 举报
回复
道光2008 2009-11-19
  • 打赏
  • 举报
回复
头像真丑
wangxiaojuancui 2009-11-19
  • 打赏
  • 举报
回复
谢谢大家,非常急用,帮忙解决下。
lzh_me 2009-11-19
  • 打赏
  • 举报
回复
你已经生成的图片是什么样它会原封导入进去的。
lzh_me 2009-11-19
  • 打赏
  • 举报
回复
首先有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());



wangxiaojuancui 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lvbang_lzt 的回复:]
没有像你这样使用模板来处理。你不就是想把图片也导到Excel中吗~~?如果使用的是Apache POI 的话自身带有一个生成图片的方法。
Java code/*
* 生成一张图片的方法*/publicstaticvoid 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();
}
}
几行代码就可以搞定...
[/Quote]
这个是用的Apache的,怎么控制生成什么样的图片?谢了
lzh_me 2009-11-19
  • 打赏
  • 举报
回复
没有像你这样使用模板来处理。你不就是想把图片也导到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();
}
}

几行代码就可以搞定...

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧