JAVA_将JFreeChart图片导出到Excel
来源:互联网 发布:久米田康治 知乎 编辑:程序博客网 时间:2024/04/27 21:30
package jfreechart;
import java.awt.Font;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts2.ServletActionContext;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class testBarChart2 extends ActionSupport{
JFreeChart chart;
HttpSession session;
HttpServletRequest request;
@Override
public String execute() throws Exception {
request=ServletActionContext.getRequest();
session=request.getSession();
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(1000,"广州","猪肉");
dataset.addValue(220,"广州","牛肉");
dataset.addValue(530,"广州","鸡肉");
dataset.addValue(340,"广州","鱼肉");
chart=ChartFactory.createBarChart3D("肉类销量统计图","肉类","销
量",dataset,PlotOrientation.VERTICAL,false,false,false);
Font font=new Font("宋体",Font.BOLD,20);
CategoryPlot plot=(CategoryPlot)chart.getPlot();
TextTitle textTitle=chart.getTitle();
textTitle.setFont(font);//设置标题的字体
CategoryAxis domainAxis=plot.getDomainAxis();//柱状图的x轴
domainAxis.setTickLabelFont(font);//设置x轴坐标上的字体
domainAxis.setLabelFont(font);//设置x轴上的标题的字体
ValueAxis valueAxis=plot.getRangeAxis();//柱状图的y轴
valueAxis.setTickLabelFont(font);//设置y轴坐标上的字体
valueAxis.setLabelFont(font);//设置y轴坐标上的标题的字体
/**添加上下面的语句会在临时文件夹下面生成图片,去掉就不会有了*/
String filename="E:/tomcat/basicsms/apache-tomcat-
6.0.18/temp/"+ServletUtilities.saveChartAsPNG(chart,500,300,null,session);
FileOutputStream fileOut = null;
BufferedImage bufferImg = null;
try {
// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
bufferImg = ImageIO.read(new File(filename));
ImageIO.write(bufferImg, "png", byteArrayOut);
// 创建一个工作薄
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("new sheet");
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 512, 255,
(short) 1, 1, (short) 10, 20);
anchor.setAnchorType(2);
// 插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut
.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)).resize(0.8);
fileOut = new FileOutputStream("d:/workbook.xls");
// 写入excel文件
wb.write(fileOut);
fileOut.close();
} catch (IOException io) {
io.printStackTrace();
System.out.println("io erorr : " + io.getMessage());
} finally {
if (fileOut != null) {
try {
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return SUCCESS;
}
public JFreeChart getChart() {
return chart;
}
}
当执行action的时候,图片会在页面显示,也会导入到workbook.xls中,这个例子其实是我在网上找的,
然后拼写成的,希望对你有帮助,我目前也在研究当中,也可以共同讨论
- JAVA_将JFreeChart图片导出到Excel
- 导出图片到Excel
- JavaScript能将页面中的图片导出到excel
- JavaScript将页面中的文本和图片导出到excel
- 将eChart图片利用POI导出到Excel
- 将图片导出至Excel
- Excel表格怎么批量导出图片将文件中的图片导出到文件夹中
- 将DataTable导出到Excel
- 将数据导出到excel
- 将gridcontrol导出到excel
- 将datagridview导出到excel
- 将DataTable 导出到Excel
- 将gridcontrol导出到excel
- 将gridcontrol导出到excel
- C#导出图片到EXCEL
- jxl导出图片到excel
- C#导出图片到EXCEL
- php导出图片到excel
- unsigned char类型指针与int型数据的转换
- 留学申请相关资料网站
- 每天一小步,人生一大步——8086/8088基本指令
- POJ 百练 2965: 玛雅历
- poj 2112(多重匹配题目)
- JAVA_将JFreeChart图片导出到Excel
- ARM及Thumb指令条件执行
- int main(int argc,char* argv[])详解
- linux配置文件参考
- 源代码阅读工具:Vim+Taglist+Ctags
- php curl的几个例子
- 【对比+转载】麦子:我奋斗了18年才和你坐在一起喝咖啡&&清华大学硕士: 我奋斗了18年,不是为了和你一起喝咖啡
- c语言构造体位域(转)
- MySQL连接超时