package test.peter.main;
import java.awt.Font;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.imageio.ImageIO;
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.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
/**
* 项目名称: Test
* 类名称: JfreeChartTest3
* 类描述: POI导出图片到Excel 用的Jar包是POI3.10 & JFreechart1.0.17
* 创建人: Peter.Qiu
* 创建时间:2014-3-18 下午03:50:09
* 修改人: Peter.Qiu
* 修改时间:2014-3-18 下午03:50:09
* 修改备注:
*/
public class JfreeChartTest3 {
private static FileOutputStream fileOut = null;
private static BufferedImage bufferImg = null;
//图片生成的路径
private static String pathOfPicture = "D:/program.jpeg";
//Excel生成的路径
private static String pathOfExcel = "D:/test.xls";
public static void main(String[] args) {
//JFreeChart画图
JFreeChart chart = ChartFactory.createPieChart3D("编程语言分布图", getDataset(), true, false, false);
chart.setTitle(new TextTitle("编程语言分布图", new Font("仿宋", Font.BOLD, 20)));
LegendTitle legend = chart.getLegend(0);
legend.setItemFont(new Font("隶书", Font.TYPE1_FONT, 16));
PiePlot plot = (PiePlot) chart.getPlot();
plot.setLabelFont(new Font("宋体", Font.HANGING_BASELINE, 12));
try {
OutputStream os = new FileOutputStream(pathOfPicture);
//OutputStream osExl = new FileOutputStream("测试.xls");
try {
// 由ChartUtilities生成文件到一个体outputStream中去
ChartUtilities.writeChartAsJPEG(os, chart, 800, 600);
//ChartUtilities.writeChartAsJPEG(osExl, chart, 100, 80);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//处理图片文件,以便产生ByteArray
ByteArrayOutputStream handlePicture = new ByteArrayOutputStream();
handlePicture = handlePicture(pathOfPicture);
//创建一个工作簿
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("picture sheet");
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 100, 50, (short) 0, 0, (short) 15, 30);
//插入图片
patriarch.createPicture(anchor, wb.addPicture(handlePicture.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
//写入excel文件
try {
fileOut = new FileOutputStream(pathOfExcel);
wb.write(fileOut);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (fileOut != null) {
try {
fileOut.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
private static ByteArrayOutputStream handlePicture(String pathOfPicture) {
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
try {
bufferImg = ImageIO.read(new File(pathOfPicture));
ImageIO.write(bufferImg, "jpeg", byteArrayOut);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return byteArrayOut;
}
private static DefaultPieDataset getDataset() {
DefaultPieDataset dpd = new DefaultPieDataset();
dpd.setValue("Java", 55);
dpd.setValue("C/C++", 30);
dpd.setValue("PHP", 10);
dpd.setValue("其它", 15);
return dpd;
}
}
分享到:
相关推荐
本篇文章将深入讲解如何使用POI库在Java中实现Excel的导出功能,以及涉及到的相关jar包及其作用。 首先,`poi-ooxml-schemas-3.15-beta1.jar`是POI库中的XML schema定义,用于解析和创建符合Office Open XML标准的...
本篇文章将详细探讨使用Apache POI库通过Java导出Excel所需的三个关键JAR包。 首先,我们来了解Apache POI项目。它是一个开源项目,主要由Apache软件基金会维护,其目标是提供一套API,使得开发者可以使用Java处理...
Java POI导出图片到Excel示例代码,标题表明了本文的主要内容,即使用Java POI将图片导出到Excel中。 描述解释 描述中提到了本文的主要内容,即使用Java POI将图片导出到Excel中,并提供了详细的示例代码,对大家的...
在标题和描述中提到的"POI操作excel的所有jar包(3.7-3.10)+dom4j.jar+xmlbean.jar"是使用POI库进行Excel操作所需的核心依赖。 首先,让我们逐一了解这些jar包的作用: 1. **poi-3.7.jar, poi-3.8.jar, poi-3.9.jar...
标题提到的"导出excel文档所需要的poi的jar包"正是指这个功能。 Apache POI的版本3.8是较早的一个稳定版本,尽管现在已经有更新的版本,但3.8版本仍然广泛使用。这里提到了三个核心的jar包: 1. poi-3.8.jar:这是...
1. **引入依赖**:在项目中引入Apache POI 3.10的jar包,通常通过Maven或Gradle进行管理。 2. **创建Workbook对象**:根据需要导出的Excel格式,创建HSSFWorkbook(.xls)或XSSFWorkbook(.xlsx)对象。 3. **创建...
标题中的"poi(java导出excel表jar包)"指的就是使用Apache POI库来实现Java程序导出数据到Excel(xls格式)的功能。描述中提到的"必需的jar包"是指为了使用Apache POI进行Excel操作,我们需要引入一系列的库文件,...
导入这些jar包后,开发者可以使用Apache POI API创建、修改和读取Office文件。例如,可以创建新的Excel工作簿,添加工作表,插入公式,设置单元格样式,读取数据,甚至处理图表和图片。对于Word文档,可以添加文本、...
在本文中,我们将深入探讨如何使用POI库将图片插入到Excel文档中,以便创建包含图像的丰富报告。 首先,让我们理解POI的基本概念。Apache POI提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet ...
在这个场景中,"使用poi生成Excel所需要的jar包"指的是利用Apache POI库来生成Excel文件。POI-3.9.jar是Apache POI项目的一个版本,包含了所有必要的类和方法,让我们可以处理Excel的XLS和XLSX格式。 首先,Apache ...
本篇将详细介绍如何使用Apache POI库导出Excel,并讨论与之相关的知识点。 首先,Apache POI提供了HSSF和XSSF两个主要组件,分别用于处理老版的BIFF8格式(.xls)和新版的OOXML格式(.xlsx)。这两个组件提供了API...
例如,你可以使用POI读取Excel数据,然后用dim4j进行数据预处理,最后再用POI将处理后的结果写回Excel。 在实际项目中,为了简化POI的使用,通常会封装一些工具类或者服务,提供简单的接口供其他模块调用,如批量...
本文将深入探讨如何使用POI库来实现Excel文件的导出,以及如何将图片URL转换为图片文件并与其他文件一起打包成压缩包。 首先,让我们了解一下Apache POI。POI是Java开发者的开源API,它允许程序创建、修改和显示...
在本例中,"poi导出word和excel"是一个使用Java POI组件实现的示例,通过main方法演示了如何操作Excel和Word文档的生成。 首先,让我们详细了解一下Java POI库在Excel导出中的应用。在Excel处理中,POI提供了一个...
4. **使用场景**:这些jar包通常用于Web应用中生成动态Excel报表,例如在线数据分析系统导出数据、批量数据导入导出、报表生成等。通过结合POI和DOM4J,开发者能够创建复杂的工作簿结构,设置单元格样式,处理公式和...
springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式...
"android poi解析Excel 的三个jar包" 提供了实现这一目标所需的Java库。这些库使得Android应用可以与Excel文件进行交互,而无需依赖Microsoft Office或任何桌面环境。让我们详细探讨这三个关键的jar包以及它们在...
"poi导出excel需要的jar"指的是在使用Apache POI进行Excel导出时,你需要包含特定的JAR依赖文件。 首先,要实现POI导出Excel的功能,你需要下载Apache POI相关的JAR文件。这些文件通常包括以下核心组件: 1. **poi...
在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件导入数据到数据库。Apache POI是一个流行的API,专为处理Microsoft Office格式的文件,如Excel(.xlsx, .xls)。本教程将详细介绍如何...
里面包含了3.8版3.9版3.10版的所有的poi的jar包 这只是3.9版的 poi-3.9.jar poi-ooxml-3.9.jar dom4j-1.6.1.jar poi-ooxml-schemas-3.9.jar xmlbeans-2.3.0.jar poi-ooxml-3.9-sources.jar