<div id="article_details" class="details">
<div class="article_title">
<span class="ico ico_type_Original"></span>
<h1>
<span class="link_title"><a href="/edc0228/article/details/52807392">
POI+JFreeChart生成报表图片插入到Excel中
</a>
</span>
</h1>
</div>
<div class="article_manage clearfix">
<div class="article_r">
<span class="link_postdate">2016-10-13 15:45</span>
<span class="link_view" title="阅读次数">795人阅读</span>
<span class="link_comments" title="评论次数"> <a href="#comments" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span>
<span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" οnclick="javascript:collectArticle('POI%2bJFreeChart%e7%94%9f%e6%88%90%e6%8a%a5%e8%a1%a8%e5%9b%be%e7%89%87%e6%8f%92%e5%85%a5%e5%88%b0Excel%e4%b8%ad','52807392');return false;" title="收藏" target="_blank">收藏</a></span>
<span class="link_report"> <a href="#report" οnclick="javascript:report(52807392,2);return false;" title="举报">举报</a></span>
</div>
</div> <style type="text/css">
.embody{
padding:10px 10px 10px;
margin:0 -20px;
border-bottom:solid 1px #ededed;
}
.embody_b{
margin:0 ;
padding:10px 0;
}
.embody .embody_t,.embody .embody_c{
display: inline-block;
margin-right:10px;
}
.embody_t{
font-size: 12px;
color:#999;
}
.embody_c{
font-size: 12px;
}
.embody_c img,.embody_c em{
display: inline-block;
vertical-align: middle;
}
.embody_c img{
width:30px;
height:30px;
}
.embody_c em{
margin: 0 20px 0 10px;
color:#333;
font-style: normal;
}
</style>
<script type="text/javascript">
$(function () {
try
{
var lib = eval("("+$("#lib").attr("value")+")");
var html = "";
if (lib.err == 0) {
$.each(lib.data, function (i) {
var obj = lib.data[i];
//html += '<img src="' + obj.logo + '"/>' + obj.name + " ";
html += ' <a href="' + obj.url + '" target="_blank">';
html += ' <img src="' + obj.logo + '">';
html += ' <em><b>' + obj.name + '</b></em>';
html += ' </a>';
});
if (html != "") {
setTimeout(function () {
$("#lib").html(html);
$("#embody").show();
}, 100);
}
}
} catch (err)
{ }
});
</script>
<div class="category clearfix">
<div class="category_l">
<img src="http://static.blog.csdn.net/images/category_icon.jpg">
<span>分类:</span>
</div>
<div class="category_r">
<label οnclick="GetCategoryArticles('6263340','edc0228','top','52807392');">
<span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">java<em>(23)</em></span>
<img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
<img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
<div class="subItem">
<div class="subItem_t"><a href="http://blog.csdn.net/edc0228/article/category/6263340" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
<ul class="subItem_l" id="top_6263340">
</ul>
</div>
</label>
</div>
</div>
<div class="bog_copyright">
<p class="copyright_p">版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
</div>
<div id="article_content" class="article_content tracking-ad" data-mod="popu_307" data-dsm="post">
<p>javaCode:</p>
<p></p>
<div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><b>[java]</b> <a href="#" class="ViewSource" title="view plain" οnclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" target="_blank">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" οnclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" target="_blank">copy</a><div style="position: absolute; left: 485px; top: 526px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" οnclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" target="_blank">print</a></span><a href="#" class="About" title="?" οnclick="dp.sh.Toolbar.Command('About',this);return false;" target="_blank">?</a></div></div><ol start="1" class="dp-j"><li class="alt"><span><span class="keyword">package</span><span> chart; </span></span></li><li class=""><span> </span></li><li class="alt"><span><span class="keyword">import</span><span> java.awt.Font; </span></span></li><li class=""><span><span class="keyword">import</span><span> java.io.ByteArrayOutputStream; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> java.io.FileNotFoundException; </span></span></li><li class=""><span><span class="keyword">import</span><span> java.io.FileOutputStream; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> java.io.IOException; </span></span></li><li class=""><span> </span></li><li class="alt"><span><span class="keyword">import</span><span> org.apache.poi.hssf.usermodel.HSSFCell; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.apache.poi.hssf.usermodel.HSSFCellStyle; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.apache.poi.hssf.usermodel.HSSFClientAnchor; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.apache.poi.hssf.usermodel.HSSFPatriarch; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.apache.poi.hssf.usermodel.HSSFRow; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.apache.poi.hssf.usermodel.HSSFSheet; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.apache.poi.hssf.usermodel.HSSFWorkbook; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.chart.ChartFactory; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.jfree.chart.ChartFrame; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.chart.ChartUtilities; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.jfree.chart.JFreeChart; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.chart.axis.CategoryAxis; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.jfree.chart.axis.ValueAxis; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.chart.labels.ItemLabelAnchor; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.jfree.chart.labels.ItemLabelPosition; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.chart.labels.StandardCategoryItemLabelGenerator; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.jfree.chart.plot.CategoryPlot; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.chart.plot.PlotOrientation; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.jfree.chart.renderer.category.BarRenderer3D; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.chart.title.LegendTitle; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.jfree.chart.title.TextTitle; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.data.category.CategoryDataset; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> org.jfree.data.category.DefaultCategoryDataset; </span></span></li><li class=""><span><span class="keyword">import</span><span> org.jfree.ui.TextAnchor; </span></span></li><li class="alt"><span> </span></li><li class=""><span><span class="keyword">import</span><span> util.ChartUtils; </span></span></li><li class="alt"><span> </span></li><li class=""><span><span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 使用poi 和 JFreeChart生成图标插入到excel中</span> </span></li><li class=""><span><span class="comment"> * @author jjc</span> </span></li><li class="alt"><span><span class="comment"> *</span> </span></li><li class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> PoiAndJFreeChart { </span></span></li><li class=""><span> <span class="keyword">private</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> setBorder(HSSFCellStyle setBorder){ </span></span></li><li class="alt"><span> setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); <span class="comment">//下边框</span><span> </span></span></li><li class=""><span> setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);<span class="comment">//左边框</span><span> </span></span></li><li class="alt"><span> setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);<span class="comment">//上边框</span><span> </span></span></li><li class=""><span> setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);<span class="comment">//右边框</span><span> </span></span></li><li class="alt"><span> setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); <span class="comment">// 设置居中</span><span> </span></span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 单纯使用POI操作Excel</span> </span></li><li class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">private</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> createExcelByPoi(){ </span></span></li><li class=""><span> <span class="comment">// 生成一个excel对象</span><span> </span></span></li><li class="alt"><span> HSSFWorkbook wb = <span class="keyword">new</span><span> HSSFWorkbook(); </span></span></li><li class=""><span> <span class="comment">// 生成excel格式对象</span><span> </span></span></li><li class="alt"><span> HSSFCellStyle style = wb.createCellStyle(); </span></li><li class=""><span> setBorder(style); </span></li><li class="alt"><span> <span class="comment">// 生成一个名为Demo的sheet</span><span> </span></span></li><li class=""><span> HSSFSheet sheet = wb.createSheet(<span class="string">"Demo"</span><span>); </span></span></li><li class="alt"><span> <span class="comment">// 创建第一行</span><span> </span></span></li><li class=""><span> HSSFRow row = sheet.createRow((<span class="keyword">int</span><span>) </span><span class="number">0</span><span>); </span></span></li><li class="alt"><span> <span class="comment">// 创建第一列单元格</span><span> </span></span></li><li class=""><span> HSSFCell cell = row.createCell((<span class="keyword">short</span><span>) </span><span class="number">0</span><span>); </span></span></li><li class="alt"><span> cell.setCellValue(<span class="string">"这是第一列单元格哦"</span><span>); </span></span></li><li class=""><span> cell.setCellStyle(style); <span class="comment">// 设置单元格格式</span><span> </span></span></li><li class="alt"><span> <span class="comment">// 设置第一列自适应,此方法对于合并单元格仍然有效,从0开始,一定要先创建列,才能使用,不然没有效果</span><span> </span></span></li><li class=""><span> sheet.autoSizeColumn(<span class="number">0</span><span>, </span><span class="keyword">true</span><span>); </span></span></li><li class="alt"><span> cell = row.createCell((<span class="keyword">short</span><span>) </span><span class="number">1</span><span>); </span></span></li><li class=""><span> cell.setCellValue(<span class="string">"满分人数aaaaaaaaa"</span><span>); </span></span></li><li class="alt"><span> cell.setCellStyle(style); </span></li><li class=""><span> sheet.autoSizeColumn(<span class="number">1</span><span>, </span><span class="keyword">true</span><span>); </span></span></li><li class="alt"><span> cell = row.createCell((<span class="keyword">short</span><span>) </span><span class="number">2</span><span>); </span></span></li><li class=""><span> cell.setCellValue(<span class="string">"最高分aaaaabbbbbb"</span><span>); </span></span></li><li class="alt"><span> cell.setCellStyle(style); </span></li><li class=""><span> sheet.autoSizeColumn(<span class="number">2</span><span>, </span><span class="keyword">true</span><span>); </span></span></li><li class="alt"><span> cell = row.createCell((<span class="keyword">short</span><span>) </span><span class="number">3</span><span>); </span></span></li><li class=""><span> cell.setCellValue(<span class="string">"最低分aaaaaaaaaa"</span><span>); </span></span></li><li class="alt"><span> sheet.autoSizeColumn(<span class="number">3</span><span>, </span><span class="keyword">true</span><span>); </span></span></li><li class=""><span> cell.setCellStyle(style); </span></li><li class="alt"><span> FileOutputStream fos = <span class="keyword">null</span><span>; </span></span></li><li class=""><span> <span class="keyword">try</span><span> { </span></span></li><li class="alt"><span> fos = <span class="keyword">new</span><span> FileOutputStream(</span><span class="string">"c://123456.xls"</span><span>); </span></span></li><li class=""><span> } <span class="keyword">catch</span><span> (FileNotFoundException e) { </span></span></li><li class="alt"><span> e.printStackTrace(); </span></li><li class=""><span> } </span></li><li class="alt"><span> <span class="keyword">try</span><span> { </span></span></li><li class=""><span> wb.write(fos); <span class="comment">// 写入到文本输出流中</span><span> </span></span></li><li class="alt"><span> } <span class="keyword">catch</span><span> (IOException e) { </span></span></li><li class=""><span> e.printStackTrace(); </span></li><li class="alt"><span> }<span class="keyword">finally</span><span>{ </span></span></li><li class=""><span> <span class="keyword">if</span><span>(fos!=</span><span class="keyword">null</span><span>){ </span></span></li><li class="alt"><span> <span class="keyword">try</span><span> { </span></span></li><li class=""><span> fos.close(); </span></li><li class="alt"><span> } <span class="keyword">catch</span><span> (IOException e) { </span></span></li><li class=""><span> e.printStackTrace(); </span></li><li class="alt"><span> } </span></li><li class=""><span> } </span></li><li class="alt"><span> } </span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 生成图表,使用简单柱状图演示</span> </span></li><li class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> createBar() { </span></span></li><li class=""><span> JFreeChart mBarChart = ChartFactory.createBarChart(<span class="string">"班级分数段分布图"</span><span>, </span><span class="comment">// 图表标题</span><span> </span></span></li><li class="alt"><span> <span class="string">"班级"</span><span>, </span><span class="comment">// 横轴</span><span> </span></span></li><li class=""><span> <span class="string">"人数"</span><span>,</span><span class="comment">// 纵轴</span><span> </span></span></li><li class="alt"><span> GetDatasetBar(), PlotOrientation.VERTICAL, <span class="comment">// 图表方向</span><span> </span></span></li><li class=""><span> <span class="keyword">true</span><span>, </span><span class="comment">// 是否显示图例</span><span> </span></span></li><li class="alt"><span> <span class="keyword">true</span><span>, </span><span class="comment">// 是否生成提示工具</span><span> </span></span></li><li class=""><span> <span class="keyword">false</span><span>); </span><span class="comment">// 是否生成url连接</span><span> </span></span></li><li class="alt"><span> <span class="comment">// 图表标题设置</span><span> </span></span></li><li class=""><span> TextTitle mTextTitle = mBarChart.getTitle(); </span></li><li class="alt"><span> mTextTitle.setFont(<span class="keyword">new</span><span> Font(</span><span class="string">"黑体"</span><span>, Font.BOLD, </span><span class="number">20</span><span>)); </span></span></li><li class=""><span> </span></li><li class="alt"><span> <span class="comment">// 图表图例设置</span><span> </span></span></li><li class=""><span> LegendTitle mLegend = mBarChart.getLegend(); </span></li><li class="alt"><span> <span class="keyword">if</span><span> (mLegend != </span><span class="keyword">null</span><span>) </span></span></li><li class=""><span> mLegend.setItemFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.CENTER_BASELINE, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">//设置柱状图轴 </span><span> </span></span></li><li class=""><span> CategoryPlot mPlot = (CategoryPlot)mBarChart.getPlot(); </span></li><li class="alt"><span> <span class="comment">//x轴 </span><span> </span></span></li><li class=""><span> CategoryAxis mDomainAxis = mPlot.getDomainAxis(); </span></li><li class="alt"><span> <span class="comment">//设置x轴标题的字体 </span><span> </span></span></li><li class=""><span> mDomainAxis.setLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.PLAIN, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">//设置x轴坐标字体 </span><span> </span></span></li><li class=""><span> mDomainAxis.setTickLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.PLAIN, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">//y轴 </span><span> </span></span></li><li class=""><span> ValueAxis mValueAxis = mPlot.getRangeAxis(); </span></li><li class="alt"><span> <span class="comment">//设置y轴标题字体 </span><span> </span></span></li><li class=""><span> mValueAxis.setLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.PLAIN, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">//设置y轴坐标字体 </span><span> </span></span></li><li class=""><span> mValueAxis.setTickLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.PLAIN, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">//柱体显示数值 </span><span> </span></span></li><li class=""><span> BarRenderer3D mRenderer = <span class="keyword">new</span><span> BarRenderer3D(); </span></span></li><li class="alt"><span> mRenderer.setItemLabelGenerator(<span class="keyword">new</span><span> StandardCategoryItemLabelGenerator()); </span></span></li><li class=""><span> mRenderer.setItemLabelsVisible(<span class="keyword">true</span><span>); </span></span></li><li class="alt"><span> mRenderer.setBasePositiveItemLabelPosition(<span class="keyword">new</span><span> ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.CENTER_LEFT)); </span></span></li><li class=""><span> mRenderer.setItemLabelAnchorOffset(<span class="number">10</span><span>); </span></span></li><li class="alt"><span> mRenderer.setItemLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.BOLD, </span><span class="number">15</span><span>)); </span></span></li><li class=""><span> mPlot.setRenderer(mRenderer); </span></li><li class="alt"><span> ChartFrame mChartFrame = <span class="keyword">new</span><span> ChartFrame(</span><span class="string">"班级分数段分布图"</span><span>, mBarChart); </span></span></li><li class=""><span> mChartFrame.pack(); </span></li><li class="alt"><span> mChartFrame.setVisible(<span class="keyword">true</span><span>); </span></span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> CategoryDataset GetDatasetBar() { </span></span></li><li class="alt"><span> </span></li><li class=""><span> DefaultCategoryDataset mDataset = <span class="keyword">new</span><span> DefaultCategoryDataset(); </span></span></li><li class="alt"><span> mDataset.addValue(<span class="number">3</span><span>, </span><span class="string">"不及格人数"</span><span>, </span><span class="string">"02班"</span><span>); </span></span></li><li class=""><span> mDataset.addValue(<span class="number">39</span><span>, </span><span class="string">"及格人数"</span><span>, </span><span class="string">"02班"</span><span>); </span></span></li><li class="alt"><span> mDataset.addValue(<span class="number">7</span><span>, </span><span class="string">"优秀人数"</span><span>, </span><span class="string">"02班"</span><span>); </span></span></li><li class=""><span> mDataset.addValue(<span class="number">5</span><span>, </span><span class="string">"不及格人数"</span><span>, </span><span class="string">"01班"</span><span>); </span></span></li><li class="alt"><span> mDataset.addValue(<span class="number">9</span><span>, </span><span class="string">"及格人数"</span><span>, </span><span class="string">"01班"</span><span>); </span></span></li><li class=""><span> mDataset.addValue(<span class="number">18</span><span>, </span><span class="string">"优秀人数"</span><span>, </span><span class="string">"01班"</span><span>); </span></span></li><li class="alt"><span> <span class="keyword">return</span><span> mDataset; </span></span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 使用poi + JfreeChart 生成图表插入excel,使用柱状图演示</span> </span></li><li class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">private</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> createByPoiAndJFreeChart(){ </span></span></li><li class=""><span> <span class="comment">// 生成一个excel对象</span><span> </span></span></li><li class="alt"><span> HSSFWorkbook wb = <span class="keyword">new</span><span> HSSFWorkbook(); </span></span></li><li class=""><span> <span class="comment">// 生成excel格式对象</span><span> </span></span></li><li class="alt"><span> HSSFCellStyle style = wb.createCellStyle(); </span></li><li class=""><span> setBorder(style); </span></li><li class="alt"><span> <span class="comment">// 生成一个名为Demo的sheet</span><span> </span></span></li><li class=""><span> HSSFSheet sheet = wb.createSheet(<span class="string">"Demo"</span><span>); </span></span></li><li class="alt"><span> </span></li><li class=""><span> </span></li><li class="alt"><span> JFreeChart mBarChart = ChartFactory.createBarChart(<span class="string">"Demo"</span><span>, </span><span class="comment">// 图表标题</span><span> </span></span></li><li class=""><span> <span class="string">"班级"</span><span>, </span><span class="comment">// 横轴</span><span> </span></span></li><li class="alt"><span> <span class="string">"人数"</span><span>,</span><span class="comment">// 纵轴</span><span> </span></span></li><li class=""><span> GetDatasetBar(), <span class="comment">// 数据来源</span><span> </span></span></li><li class="alt"><span> PlotOrientation.VERTICAL, <span class="comment">// 图表方向</span><span> </span></span></li><li class=""><span> <span class="keyword">true</span><span>, </span><span class="comment">// 是否显示图例</span><span> </span></span></li><li class="alt"><span> <span class="keyword">true</span><span>, </span><span class="comment">// 是否生成提示工具</span><span> </span></span></li><li class=""><span> <span class="keyword">false</span><span>); </span><span class="comment">// 是否生成url连接</span><span> </span></span></li><li class="alt"><span> <span class="comment">// 图表标题设置</span><span> </span></span></li><li class=""><span> TextTitle mTextTitle = mBarChart.getTitle(); </span></li><li class="alt"><span> mTextTitle.setFont(<span class="keyword">new</span><span> Font(</span><span class="string">"黑体"</span><span>, Font.BOLD, </span><span class="number">25</span><span>)); </span></span></li><li class=""><span> </span></li><li class="alt"><span> <span class="comment">// 图表图例设置</span><span> </span></span></li><li class=""><span> LegendTitle mLegend = mBarChart.getLegend(); </span></li><li class="alt"><span> <span class="keyword">if</span><span> (mLegend != </span><span class="keyword">null</span><span>) </span></span></li><li class=""><span> mLegend.setItemFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.CENTER_BASELINE, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">// 设置柱状图轴</span><span> </span></span></li><li class=""><span> CategoryPlot mPlot = (CategoryPlot) mBarChart.getPlot(); </span></li><li class="alt"><span> <span class="comment">// 3:设置抗锯齿,防止字体显示不清楚</span><span> </span></span></li><li class=""><span> ChartUtils.setAntiAlias(mBarChart);<span class="comment">// 抗锯齿</span><span> </span></span></li><li class="alt"><span> <span class="comment">// x轴</span><span> </span></span></li><li class=""><span> CategoryAxis mDomainAxis = mPlot.getDomainAxis(); </span></li><li class="alt"><span> <span class="comment">// 设置x轴标题的字体</span><span> </span></span></li><li class=""><span> mDomainAxis.setLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.PLAIN, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">// 设置x轴坐标字体</span><span> </span></span></li><li class=""><span> mDomainAxis.setTickLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.PLAIN, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">// y轴</span><span> </span></span></li><li class=""><span> ValueAxis mValueAxis = mPlot.getRangeAxis(); </span></li><li class="alt"><span> <span class="comment">// 设置y轴标题字体</span><span> </span></span></li><li class=""><span> mValueAxis.setLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.PLAIN, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">// 设置y轴坐标字体</span><span> </span></span></li><li class=""><span> mValueAxis.setTickLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.PLAIN, </span><span class="number">15</span><span>)); </span></span></li><li class="alt"><span> <span class="comment">// 柱体显示数值</span><span> </span></span></li><li class=""><span> BarRenderer3D mRenderer = <span class="keyword">new</span><span> BarRenderer3D(); </span></span></li><li class="alt"><span> mRenderer.setItemLabelGenerator(<span class="keyword">new</span><span> StandardCategoryItemLabelGenerator()); </span></span></li><li class=""><span> mRenderer.setItemLabelsVisible(<span class="keyword">true</span><span>); </span></span></li><li class="alt"><span> mRenderer.setBasePositiveItemLabelPosition(<span class="keyword">new</span><span> ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.CENTER_LEFT)); </span></span></li><li class=""><span> <span class="comment">// 柱体显示数值向上偏移一点点</span><span> </span></span></li><li class="alt"><span> mRenderer.setItemLabelAnchorOffset(<span class="number">10</span><span>); </span></span></li><li class=""><span> <span class="comment">// 设置柱体显示数字格式</span><span> </span></span></li><li class="alt"><span> mRenderer.setItemLabelFont(<span class="keyword">new</span><span> Font(</span><span class="string">"宋体"</span><span>, Font.BOLD, </span><span class="number">15</span><span>)); </span></span></li><li class=""><span> mPlot.setRenderer(mRenderer); </span></li><li class="alt"><span> ByteArrayOutputStream bos = <span class="keyword">new</span><span> ByteArrayOutputStream(); </span></span></li><li class=""><span> <span class="keyword">try</span><span> { </span></span></li><li class="alt"><span> <span class="comment">// 将图表写入到ByteArrayOutputStream流中</span><span> </span></span></li><li class=""><span> ChartUtilities.writeChartAsJPEG(bos, mBarChart, <span class="number">800</span><span>, </span><span class="number">700</span><span>); </span></span></li><li class="alt"><span> } <span class="keyword">catch</span><span> (IOException e) { </span></span></li><li class=""><span> e.printStackTrace(); </span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> </span></li><li class=""><span> <span class="comment">// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray</span><span> </span></span></li><li class="alt"><span> <span class="keyword">try</span><span> { </span></span></li><li class=""><span> <span class="comment">// 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)</span><span> </span></span></li><li class="alt"><span> HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); </span></li><li class=""><span> <span class="comment">// anchor主要用于设置图片的属性(1,1 表示图片左上角,15,31表示图片右下角,通过这个可以控制图片的大小)</span><span> </span></span></li><li class="alt"><span> HSSFClientAnchor anchor = <span class="keyword">new</span><span> HSSFClientAnchor(</span><span class="number">0</span><span>, </span><span class="number">0</span><span>, </span><span class="number">255</span><span>, </span><span class="number">255</span><span>, (</span><span class="keyword">short</span><span>) </span><span class="number">1</span><span>, </span><span class="number">1</span><span>, (</span><span class="keyword">short</span><span>) </span><span class="number">15</span><span>, </span><span class="number">31</span><span>); </span></span></li><li class=""><span> anchor.setAnchorType(<span class="number">3</span><span>); </span></span></li><li class="alt"><span> <span class="comment">// 插入图片</span><span> </span></span></li><li class=""><span> patriarch.createPicture(anchor, </span></li><li class="alt"><span> wb.addPicture(bos.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); </span></li><li class=""><span> } <span class="keyword">catch</span><span> (Exception e) { </span></span></li><li class="alt"><span> e.printStackTrace(); </span></li><li class=""><span> }<span class="keyword">finally</span><span>{ </span></span></li><li class="alt"><span> <span class="keyword">if</span><span>(bos != </span><span class="keyword">null</span><span>){ </span></span></li><li class=""><span> <span class="keyword">try</span><span> { </span></span></li><li class="alt"><span> bos.close(); </span></li><li class=""><span> } <span class="keyword">catch</span><span> (IOException e) { </span></span></li><li class="alt"><span> e.printStackTrace(); </span></li><li class=""><span> } </span></li><li class="alt"><span> } </span></li><li class=""><span> } </span></li><li class="alt"><span> FileOutputStream fos = <span class="keyword">null</span><span>; </span></span></li><li class=""><span> <span class="keyword">try</span><span> { </span></span></li><li class="alt"><span> fos = <span class="keyword">new</span><span> FileOutputStream(</span><span class="string">"c://测试.xls"</span><span>); </span></span></li><li class=""><span> <span class="keyword">try</span><span> { </span></span></li><li class="alt"><span> wb.write(fos); </span></li><li class=""><span> } <span class="keyword">catch</span><span> (IOException e) { </span></span></li><li class="alt"><span> e.printStackTrace(); </span></li><li class=""><span> } </span></li><li class="alt"><span> } <span class="keyword">catch</span><span> (FileNotFoundException e) { </span></span></li><li class=""><span> e.printStackTrace(); </span></li><li class="alt"><span> } </span></li><li class=""><span> <span class="keyword">if</span><span>(fos!=</span><span class="keyword">null</span><span>){ </span></span></li><li class="alt"><span> <span class="keyword">try</span><span> { </span></span></li><li class=""><span> fos.close(); </span></li><li class="alt"><span> } <span class="keyword">catch</span><span> (IOException e) { </span></span></li><li class=""><span> e.printStackTrace(); </span></li><li class="alt"><span> } </span></li><li class=""><span> } </span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> main(String[] args) { </span></span></li><li class=""><span><span class="comment">// createExcelByPoi(); // 单纯使用POI创建excel</span><span> </span></span></li><li class="alt"><span><span class="comment">// createBar(); // 单纯使用JfreeChart生成图表</span><span> </span></span></li><li class=""><span><span class="comment">// createByPoiAndJFreeChart(); // 使用POI+ JfreeChart 生成图表写入Excel</span><span> </span></span></li><li class="alt"><span> } </span></li><li class=""><span>} </span></li></ol></div><pre code_snippet_id="1927118" snippet_file_name="blog_20161013_1_830243" name="code" class="java" style="display: none;">package chart;
import java.awt.Font;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.TextAnchor;
import util.ChartUtils;
/**
* 使用poi 和 JFreeChart生成图标插入到excel中
* @author jjc
*
*/
public class PoiAndJFreeChart {
private static void setBorder(HSSFCellStyle setBorder){
setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 设置居中
}
/**
* 单纯使用POI操作Excel
*/
private static void createExcelByPoi(){
// 生成一个excel对象
HSSFWorkbook wb = new HSSFWorkbook();
// 生成excel格式对象
HSSFCellStyle style = wb.createCellStyle();
setBorder(style);
// 生成一个名为Demo的sheet
HSSFSheet sheet = wb.createSheet("Demo");
// 创建第一行
HSSFRow row = sheet.createRow((int) 0);
// 创建第一列单元格
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("这是第一列单元格哦");
cell.setCellStyle(style); // 设置单元格格式
// 设置第一列自适应,此方法对于合并单元格仍然有效,从0开始,一定要先创建列,才能使用,不然没有效果
sheet.autoSizeColumn(0, true);
cell = row.createCell((short) 1);
cell.setCellValue("满分人数aaaaaaaaa");
cell.setCellStyle(style);
sheet.autoSizeColumn(1, true);
cell = row.createCell((short) 2);
cell.setCellValue("最高分aaaaabbbbbb");
cell.setCellStyle(style);
sheet.autoSizeColumn(2, true);
cell = row.createCell((short) 3);
cell.setCellValue("最低分aaaaaaaaaa");
sheet.autoSizeColumn(3, true);
cell.setCellStyle(style);
FileOutputStream fos = null;
try {
fos = new FileOutputStream("c://123456.xls");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
wb.write(fos); // 写入到文本输出流中
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 生成图表,使用简单柱状图演示
*/
public static void createBar() {
JFreeChart mBarChart = ChartFactory.createBarChart("班级分数段分布图", // 图表标题
"班级", // 横轴
"人数",// 纵轴
GetDatasetBar(), PlotOrientation.VERTICAL, // 图表方向
true, // 是否显示图例
true, // 是否生成提示工具
false); // 是否生成url连接
// 图表标题设置
TextTitle mTextTitle = mBarChart.getTitle();
mTextTitle.setFont(new Font("黑体", Font.BOLD, 20));
// 图表图例设置
LegendTitle mLegend = mBarChart.getLegend();
if (mLegend != null)
mLegend.setItemFont(new Font("宋体", Font.CENTER_BASELINE, 15));
//设置柱状图轴
CategoryPlot mPlot = (CategoryPlot)mBarChart.getPlot();
//x轴
CategoryAxis mDomainAxis = mPlot.getDomainAxis();
//设置x轴标题的字体
mDomainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
//设置x轴坐标字体
mDomainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));
//y轴
ValueAxis mValueAxis = mPlot.getRangeAxis();
//设置y轴标题字体
mValueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
//设置y轴坐标字体
mValueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));
//柱体显示数值
BarRenderer3D mRenderer = new BarRenderer3D();
mRenderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
mRenderer.setItemLabelsVisible(true);
mRenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.CENTER_LEFT));
mRenderer.setItemLabelAnchorOffset(10);
mRenderer.setItemLabelFont(new Font("宋体", Font.BOLD, 15));
mPlot.setRenderer(mRenderer);
ChartFrame mChartFrame = new ChartFrame("班级分数段分布图", mBarChart);
mChartFrame.pack();
mChartFrame.setVisible(true);
}
public static CategoryDataset GetDatasetBar() {
DefaultCategoryDataset mDataset = new DefaultCategoryDataset();
mDataset.addValue(3, "不及格人数", "02班");
mDataset.addValue(39, "及格人数", "02班");
mDataset.addValue(7, "优秀人数", "02班");
mDataset.addValue(5, "不及格人数", "01班");
mDataset.addValue(9, "及格人数", "01班");
mDataset.addValue(18, "优秀人数", "01班");
return mDataset;
}
/**
* 使用poi + JfreeChart 生成图表插入excel,使用柱状图演示
*/
private static void createByPoiAndJFreeChart(){
// 生成一个excel对象
HSSFWorkbook wb = new HSSFWorkbook();
// 生成excel格式对象
HSSFCellStyle style = wb.createCellStyle();
setBorder(style);
// 生成一个名为Demo的sheet
HSSFSheet sheet = wb.createSheet("Demo");
JFreeChart mBarChart = ChartFactory.createBarChart("Demo", // 图表标题
"班级", // 横轴
"人数",// 纵轴
GetDatasetBar(), // 数据来源
PlotOrientation.VERTICAL, // 图表方向
true, // 是否显示图例
true, // 是否生成提示工具
false); // 是否生成url连接
// 图表标题设置
TextTitle mTextTitle = mBarChart.getTitle();
mTextTitle.setFont(new Font("黑体", Font.BOLD, 25));
// 图表图例设置
LegendTitle mLegend = mBarChart.getLegend();
if (mLegend != null)
mLegend.setItemFont(new Font("宋体", Font.CENTER_BASELINE, 15));
// 设置柱状图轴
CategoryPlot mPlot = (CategoryPlot) mBarChart.getPlot();
// 3:设置抗锯齿,防止字体显示不清楚
ChartUtils.setAntiAlias(mBarChart);// 抗锯齿
// x轴
CategoryAxis mDomainAxis = mPlot.getDomainAxis();
// 设置x轴标题的字体
mDomainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
// 设置x轴坐标字体
mDomainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));
// y轴
ValueAxis mValueAxis = mPlot.getRangeAxis();
// 设置y轴标题字体
mValueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
// 设置y轴坐标字体
mValueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));
// 柱体显示数值
BarRenderer3D mRenderer = new BarRenderer3D();
mRenderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
mRenderer.setItemLabelsVisible(true);
mRenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.CENTER_LEFT));
// 柱体显示数值向上偏移一点点
mRenderer.setItemLabelAnchorOffset(10);
// 设置柱体显示数字格式
mRenderer.setItemLabelFont(new Font("宋体", Font.BOLD, 15));
mPlot.setRenderer(mRenderer);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
// 将图表写入到ByteArrayOutputStream流中
ChartUtilities.writeChartAsJPEG(bos, mBarChart, 800, 700);
} catch (IOException e) {
e.printStackTrace();
}
// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
try {
// 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
// anchor主要用于设置图片的属性(1,1 表示图片左上角,15,31表示图片右下角,通过这个可以控制图片的大小)
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, (short) 1, 1, (short) 15, 31);
anchor.setAnchorType(3);
// 插入图片
patriarch.createPicture(anchor,
wb.addPicture(bos.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
} catch (Exception e) {
e.printStackTrace();
}finally{
if(bos != null){
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileOutputStream fos = null;
try {
fos = new FileOutputStream("c://测试.xls");
try {
wb.write(fos);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// createExcelByPoi(); // 单纯使用POI创建excel
// createBar(); // 单纯使用JfreeChart生成图表
// createByPoiAndJFreeChart(); // 使用POI+ JfreeChart 生成图表写入Excel
}
}
</pre><br>
以上使用了柱状图演示,其他图形请下载代码。<a target="_blank" href="http://download.csdn.net/detail/edc0228/9652888">点击打开链接</a>
<p></p>
</div>
<!-- Baidu Button BEGIN -->
<div class="bdsharebuttonbox tracking-ad bdshare-button-style0-16" style="float: right;" data-mod="popu_172" data-bd-bind="1505379805393">
<a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important" target="_blank"></a>
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important" target="_blank"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博" style="background-position:0 -104px !important" target="_blank"></a>
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博" style="background-position:0 -260px !important" target="_blank"></a>
<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网" style="background-position:0 -208px !important" target="_blank"></a>
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信" style="background-position:0 -1612px !important" target="_blank"></a>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<!-- Baidu Button END -->
<!--172.16.140.12-->
<!-- Baidu Button BEGIN -->
<script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" src="http://bdimg.share.baidu.com/static/js/bds_s_v2.js?cdnversion=418162"></script>
<script type="text/javascript">
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
</script>
<!-- Baidu Button END -->
<div id="digg" articleid="52807392">
<dl id="btnDigg" class="digg digg_disable" οnclick="btndigga();">
<dt>顶</dt>
<dd>1</dd>
</dl>
<dl id="btnBury" class="digg digg_disable" οnclick="btnburya();">
<dt>踩</dt>
<dd>0</dd>
</dl>
</div>
<div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank"> </a> </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank"> </a></div>
<script type="text/javascript">
function btndigga() {
$(".tracking-ad[data-mod='popu_222'] a").click();
}
function btnburya() {
$(".tracking-ad[data-mod='popu_223'] a").click();
}
</script>
<ul class="article_next_prev">
<li class="prev_article"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='http://blog.csdn.net/edc0228/article/details/52788395';">上一篇</span><a href="http://blog.csdn.net/edc0228/article/details/52788395" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">Linux常用命令</a></li>
<li class="next_article"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='http://blog.csdn.net/edc0228/article/details/53080880';">下一篇</span><a href="http://blog.csdn.net/edc0228/article/details/53080880" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">jfreechart调整线条颜色</a></li>
</ul>
<div style="clear:both; height:10px;"></div>
<div class="similar_article">
<h4></h4>
<div class="similar_c" style="margin:20px 0px 0px 0px">
<div class="similar_c_t">
相关文章推荐
</div>
<div class="similar_wrap tracking-ad" data-mod="popu_36" style="max-height:250px">
<ul class="similar_list fl">
<li>
<em>•</em>
<a href="http://blog.csdn.net/tuzongxun/article/details/52584103" title="使用poi和jfreechart生成excel图表图片" strategy="BlogCommendFromBaidu_0" target="_blank">使用poi和jfreechart生成excel图表图片</a>
</li>
<li>
<em>•</em>
<a href="http://edu.csdn.net/huiyiCourse/series_detail/66?utm_source=blog7" title="SDCC 2017之区块链技术实战线上峰会" strategy="undefined" target="_blank">SDCC 2017之区块链技术实战线上峰会</a>
</li>
<li>
<em>•</em>
<a href="http://blog.csdn.net/siyemuzi/article/details/23839547" title="POI导出excel+JFreeChart生成图表(柱状图和折线图)" strategy="BlogCommendFromBaidu_1" target="_blank">POI导出excel+JFreeChart生成图表(柱状图和折线图)</a>
</li>
<li>
<em>•</em>
<a href="http://edu.csdn.net/huiyiCourse/series_detail/61?utm_source=blog7" title="30天系统掌握机器学习" strategy="undefined" target="_blank">30天系统掌握机器学习</a>
</li>
<li>
<em>•</em>
<a href="http://download.csdn.net/download/edc0228/9652888" title="JFreeChart" strategy="BlogCommendFromBaidu_2" target="_blank">JFreeChart</a>
</li>
<li>
<em>•</em>
<a href="http://edu.csdn.net/course/detail/3338?utm_source=blog7" title="Python大型网络爬虫项目开发实战" strategy="undefined" target="_blank">Python大型网络爬虫项目开发实战</a>
</li>
<li>
<em>•</em>
<a href="http://download.csdn.net/download/lenovo00728/8340591" title="POI和JFreeChart框架实现生成Excel文件(生成 统计图)" strategy="BlogCommendFromBaidu_3" target="_blank">POI和JFreeChart框架实现生成Excel文件(生成 统计图)</a>
</li>
<li>
<em>•</em>
<a href="http://edu.csdn.net/course/detail/5680?utm_source=blog7" title="ReactNative全教程合集" strategy="undefined" target="_blank">ReactNative全教程合集</a>
</li>
</ul>
<ul class="similar_list fr">
<li>
<em>•</em>
<a href="http://blog.csdn.net/baiyangok/article/details/41956859" title="教你如何利用POI和JFreeChart框架实现生成Excel文件(生成 统计图)" strategy="BlogCommendFromBaidu_4" target="_blank">教你如何利用POI和JFreeChart框架实现生成Excel文件(生成 统计图)</a>
</li>
<li>
<em>•</em>
<a href="http://edu.csdn.net/course/detail/1441?utm_source=blog7" title="Shader开发入门实战" strategy="undefined" target="_blank">Shader开发入门实战</a>
</li>
<li>
<em>•</em>
<a href="http://blog.csdn.net/YYZhQ/article/details/47441461" title="在项目中使用ExtJS" strategy="BlogCommendFromBaidu_5" target="_blank">在项目中使用ExtJS</a>
</li>
<li>
<em>•</em>
<a href="http://edu.csdn.net/course/detail/3506?utm_source=blog7" title="深度学习框架Caffe详解" strategy="undefined" target="_blank">深度学习框架Caffe详解</a>
</li>
<li>
<em>•</em>
<a href="http://blog.csdn.net/qq_33212500/article/details/73274799" title="echarts图表导出excel示例" strategy="BlogCommendFromBaidu_6" target="_blank">echarts图表导出excel示例</a>
</li>
<li>
<em>•</em>
<a href="http://blog.csdn.net/u010132933/article/details/51083321" title="ExtJS前端在项目中使用" strategy="BlogCommendFromBaidu_7" target="_blank">ExtJS前端在项目中使用</a>
</li>
<li>
<em>•</em>
<a href="http://blog.csdn.net/sushengmiyan/article/details/38331347" title="[ExtJS5学习笔记]第四节 欢迎来到extjs5-手把手教你实现你的第一个应用" strategy="BlogCommendFromBaidu_8" target="_blank">[ExtJS5学习笔记]第四节 欢迎来到extjs5-手把手教你实现你的第一个应用</a>
</li>
<li>
<em>•</em>
<a href="http://blog.csdn.net/name_liweibin/article/details/12840365" title="Extjs 项目中常用的小技巧" strategy="BlogCommendFromBaidu_9" target="_blank">Extjs 项目中常用的小技巧</a>
</li>
</ul>
</div>
</div>
</div>
</div>
POI+JFreeChart生成报表图片插入到Excel中
最新推荐文章于 2022-06-28 15:54:44 发布