1. 程式人生 > >Java圖表繪製和操作excel表格

Java圖表繪製和操作excel表格

今天學習了Java中使用JFreeChart,POI,JXL繪製圖表,操作excel表格問題,自己動手了寫了些小demo,不足之處,請大家指正。謝謝。 ^_^
完整的類檔案在附件中。並附上一張截圖
====================================
程式碼『片段』
====================================
/**
	 * 根據資料設定圖表的相關資訊
	 * @param categoryDataset
	 * @return
	 */
	public static JFreeChart createJFreeChart(CategoryDataset categoryDataset) {
		/**
		 * 設定圖表的相關資訊,其引數依次為:
		 * 圖表標題,縱座標顯示提示,橫座標顯示提示,要顯示的資料
		 * 設定要顯示圖示柱狀的橫向或縱向.HORIZONTAL表示縱向,VERTICAL表示橫向
		 * 後面三個boolean型的引數:
		 * 第一個表示是否顯示柱狀圖例,true為顯示,false為不顯示
		 */
		JFreeChart chart = ChartFactory.createBarChart("學生人數統計", "省份", "數量",
				categoryDataset, PlotOrientation.VERTICAL, true, true, false);
		// 設定背景顏色
		chart.setBackgroundPaint(Color.WHITE);
		CategoryPlot cateforyPlot = chart.getCategoryPlot();
		cateforyPlot.setBackgroundPaint(Color.WHITE);
		cateforyPlot.setDomainGridlinePaint(Color.WHITE);
		// 設定是否可見
		cateforyPlot.setDomainGridlinesVisible(true);
		// 設定柱狀的顏色
		cateforyPlot.setRangeGridlinePaint(Color.BLUE);
		return chart;
	}

	/**
	 * 生成二維的柱狀圖
	 * @param session 客戶端當前session
	 * @param out 輸出流
	 * @return 返回所生成圖片的URL
	 */
	public static String getBarChartURL(HttpSession session, PrintWriter out) {
		String fileName = "";
		//呼叫靜態的方法獲取資料集
		CategoryDataset categoryDataset = getDataSet();
		//呼叫類中靜態方法建立圖表物件
		JFreeChart chart = createJFreeChart(categoryDataset);
		ChartRenderingInfo chartInfo = new ChartRenderingInfo(
				new StandardEntityCollection());
		try {
			//將生成的圖片以PNG檔案格式顯示
			fileName = ServletUtilities.saveChartAsPNG(chart, 500, 300,
					chartInfo, session);
		} catch (IOException e) {
			e.printStackTrace();
		}
		try {
			//向客戶端顯示圖片
			ChartUtilities.writeImageMap(out, fileName, chartInfo, true);
		} catch (IOException e) {
			e.printStackTrace();
		}
		out.flush();
		return fileName;
	}