Java根据word模板生成word文档之后台解析和实现及部分代码(三)E
来源:互联网 发布:seo网络推广公司 编辑:程序博客网 时间:2024/04/28 04:46
下面贴出生成图片的方法类,实际上是通过传入解析过的xml数据到这个工具类进行处理,并调用生成jfreechar的工具类生成。
import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.util.List;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.data.general.DefaultPieDataset;import org.jfree.data.general.PieDataset;import org.jfree.data.xy.XYDataset;import org.jfree.data.xy.XYSeries;import org.jfree.data.xy.XYSeriesCollection;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com.mysql.jdbc.DatabaseMetaData;import com.venustech.a6l3.common.CommonUtils;import com.venustech.a6l3.dao.common.CommonStatisticsCreateImagesDao;/** * 生成报告相关的图片文件 * @author 唐辉 * */@Componentpublic class CreatPieForReport{@Autowiredprivate CommonStatisticsCreateImagesDao commonStatisticsCreateImagesDao;Statement stmt = null;Connection conn = null;ResultSet rs = null;DatabaseMetaData dma; /** * 组织生成饼状图的数据结构 * @param sqlStr * @return */public PieDataset createDataset(String sqlStr,List<FieldBean> fieldList,Connection conn){DefaultPieDataset defaultpiedataset = new DefaultPieDataset();if(CommonUtils.isNotNull(sqlStr)){try { //通过Query接口查询 //System.out.println("\n 要创建饼状图数据集的SQL语句为:\n" + sqlStr); stmt = conn.prepareStatement(sqlStr); rs = stmt.executeQuery(sqlStr); while(rs.next()){ if(fieldList != null && fieldList.size() > 0){ for (int i = 0; i < fieldList.size(); i++) { String filedColumn = fieldList.get(i).getColumn(); String filedName = fieldList.get(i).getName(); //执行查询 String filedValue = rs.getString(filedColumn); defaultpiedataset.setValue(filedName==null?"":filedName, new Double(filedValue)); } } }} catch (Exception e) {e.getStackTrace();System.out.println(e.getMessage());} } return defaultpiedataset; } /** * 组织柱状图的数据结构 * @param sqlStr * @return */public DefaultCategoryDataset creatBarChart(String sqlStr,List<FieldBean> fieldList,Connection conn){DefaultCategoryDataset defaultCategoryDataset = new DefaultCategoryDataset();if(CommonUtils.isNotNull(sqlStr)){try { //通过Query接口查询 //System.out.println("\n 要创建柱状图数据集的SQL语句为:\n" + sqlStr); stmt = conn.prepareStatement(sqlStr); rs = stmt.executeQuery(sqlStr); while(rs.next()){ if(fieldList != null && fieldList.size() > 0){ for (int i = 0; i < fieldList.size(); i++) { String filedColumn = fieldList.get(i).getColumn(); String filedName = fieldList.get(i).getName(); //执行查询 String filedValue = rs.getString(filedColumn); if(CommonUtils.isNotNull(filedValue)){ defaultCategoryDataset.setValue(Integer.parseInt(filedValue),filedValue,filedName==null?"":filedName); } } } }} catch (Exception e) {e.getStackTrace();System.out.println(e.getMessage());} } return defaultCategoryDataset; } /** * 组织曲线图的数据结构 * @param sqlStr * @return */public CategoryDataset createLineChart(String sqlStr,List<FieldBean> fieldList,Connection conn){CategoryDataset categoryDataset = null; return categoryDataset; } /** * 综合差距分析数据结构 * @param sqlStr * @return */ private XYDataset createPolarChart(String sqlStr,List<FieldBean> fieldList,Connection conn,String[] pplotArr){ XYSeriesCollection xyseriescollection = new XYSeriesCollection(); XYSeries xyserie1 = new XYSeries(pplotArr[0]); for(int k = 0; k < 11; k++) { xyserie1.add((360/11)*k, 10D);} xyseriescollection.addSeries(xyserie1); if(CommonUtils.isNotNull(sqlStr)){try { XYSeries xyserie2 = new XYSeries(pplotArr[1]); //通过Query接口查询 //System.out.println("\n 要创建雷达图数据集的SQL语句为:\n" + sqlStr); Statement stmt = conn.prepareStatement(sqlStr); ResultSet rs = stmt.executeQuery(sqlStr); while(rs.next()){ if(fieldList != null && fieldList.size() > 0){ for (int i = 0; i < fieldList.size(); i++) { String filedColumn = fieldList.get(i).getColumn(); if(filedColumn.equals("conformValue")){ //执行查询 String filedValue = rs.getString(filedColumn); if(!CommonUtils.isNotNull(filedValue)){ filedValue = "0"; } if(CommonUtils.isNotNull(filedValue)){ for(int m = 0; m < 11; m++) { xyserie2.add((360/11)*m, Double.parseDouble(XmlPathDef.getStrNum(filedValue))); } } } } } } xyseriescollection.addSeries(xyserie2);} catch (Exception e) {e.getStackTrace();System.out.println(e.getMessage());} } return xyseriescollection; }/** * 报告图片生成方法 * @param sqlStr * @param charName * @param fieldList * @param chartUrl * @param conn * @param type * @param width * @param height * @return */public boolean createChartPic(String sqlStr,String charName,List<FieldBean> fieldList,String chartUrl,Connection conn,String type,int width,int height,String[] pplotArr){boolean boo = true;if(CommonUtils.isNotNull(type) && type.indexOf("CI") != -1){ type = type.substring(type.indexOf("CI")+3, type.length()); if(CommonUtils.isNotNull(type)){ if(type.equals(XmlPathDef.PIECHART)){ //饼状图 boo = commonStatisticsCreateImagesDao.createPiePic(chartUrl, charName,createDataset(sqlStr,fieldList, conn), width, height); }else if(type.equals(XmlPathDef.BARCHART)){ //柱状图 boo = commonStatisticsCreateImagesDao.creatPic(chartUrl, charName, "", creatBarChart(sqlStr,fieldList, conn), width, height); }else if(type.equals(XmlPathDef.LINECHART)){ //曲线图 boo = commonStatisticsCreateImagesDao.createLinePic(chartUrl, charName, "", createLineChart(sqlStr,fieldList, conn), width, height); }else if(type.equals(XmlPathDef.RADARCHART)){ //雷达图 boo = commonStatisticsCreateImagesDao.createPolarChart(chartUrl, charName, createPolarChart(sqlStr,fieldList, conn, pplotArr), width, height,pplotArr); } }} return boo; } public static void main(String args[]){ }}
(未完待续)
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)E
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)A
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)B
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)C
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)D
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)F
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)G
- Java根据word模板生成word文档之后台解析和实现及部分代码(一)
- Java根据word模板生成word文档之后台解析和实现及部分代码(二)
- java根据ftl模板生成word文档
- Java根据word模板生成word文档之前言
- Java根据word模板生成word文档之设计架构
- Java根据word模板生成word文档之总结
- java根据ftl模板生成word文档(列表)
- Java根据word模板生成word文档之Jacob和Httpclient简介
- FreeMaker解析Word模板(含图片)生成Word文档
- FreeMaker解析Word模板(含图片)生成Word文档
- Java根据word模板生成word文档之设计详细思路---word标签定义
- oracle的declare声明语法
- 枚举
- Ullrich Köthe's Publications关于结构张量的文章
- 作用域与成员函数
- 实现在Picture控件中获取鼠标位置
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)E
- 如何改变Activity的显示方向
- Linux下 hid quirks的研究
- GestureDetector.OnGestureListener 详解以及android手势动作详解!
- “灵异类”灭火机器人
- 作品展(三)
- POJ-4043(简单数论)(Remoteland)
- Loadrunner如何监控tomcat Web容器内存状况
- Linux下 USB HID device driver研究(三)--probe