1. 程式人生 > 程式設計 >Java生成表格圖片的例項程式碼

Java生成表格圖片的例項程式碼

主要程式碼:

/**
 * 生成圖片
			 * @param cellsValue 以二維陣列形式存放 表格裡面的值
			 * @param path 檔案儲存路徑
			 */
			public void myGraphicsGeneration(String cellsValue[][],String path) {
				// 字型大小
				int fontTitileSize = 15;
				// 橫線的行數
				int totalrow = cellsValue.length+1;
				// 豎線的行數
				int totalcol = 0;
				if (cellsValue[0] != null) {
					totalcol = cellsValue[0].length;
				}
				// 圖片寬度
				int imageWidth = 1024;
				// 行高
				int rowheight = 40;
				// 圖片高度
				int imageHeight = totalrow*rowheight+50;
				// 起始高度
				int startHeight = 10;
				// 起始寬度
				int startWidth = 10;
				// 單元格寬度
				int colwidth = (int)((imageWidth-20)/totalcol);
				BufferedImage image = new BufferedImage(imageWidth,imageHeight,BufferedImage.TYPE_INT_RGB);
				Graphics graphics = image.getGraphics();
				graphics.setColor(Color.WHITE);
				graphics.fillRect(0,imageWidth,imageHeight);
				graphics.setColor(new Color(220,240,240));
				
				//畫橫線
				for(int j=0;j<totalrow; j++){
					graphics.setColor(Color.black);
					graphics.drawLine(startWidth,startHeight+(j+1)*rowheight,startWidth+colwidth*totalcol,startHeight+(j+1)*rowheight);
				}
				//畫豎線
				for(int k=0;k<totalcol+1;k++){
					graphics.setColor(Color.black);
					graphics.drawLine(startWidth+k*colwidth,startHeight+rowheight,startWidth+k*colwidth,startHeight+rowheight*totalrow);
				}
				//設定字型
				Font font = new Font("微軟雅黑",Font.BOLD,fontTitileSize);
				graphics.setFont(font);
				//寫標題
				String title = "【指標完成進度】";
				graphics.drawString(title,startWidth,startHeight+rowheight-10);
				//寫入內容
				for(int n=0;n<cellsValue.length;n++){
						for(int l=0;l<cellsValue[n].length;l++){
							if (n == 0) {
								font = new Font("微軟雅黑",fontTitileSize);
								graphics.setFont(font);
							}else if (n > 0 && l >0) {
								font = new Font("微軟雅黑",Font.PLAIN,fontTitileSize);
								graphics.setFont(font);
								graphics.setColor(Color.RED);
							} else {
								font = new Font("微軟雅黑",fontTitileSize);
								graphics.setFont(font);
								graphics.setColor(Color.BLACK);
							}
						graphics.drawString(cellsValue[n][l].toString(),startWidth+colwidth*l+5,startHeight+rowheight*(n+2)-10);
					}
				}
				// 儲存圖片
				createImage(image,path);
			}
 
/**
			 * 將圖片儲存到指定位置
			 * @param image 緩衝檔案類
			 * @param fileLocation 檔案位置
			 */
			public void createImage(BufferedImage image,String fileLocation) {
				try {
					FileOutputStream fos = new FileOutputStream(fileLocation);
					BufferedOutputStream bos = new BufferedOutputStream(fos);
					JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
					encoder.encode(image);
					bos.close();
					} catch (Exception e) {
					e.printStackTrace();
					}
			}

測試程式碼:

public static void main(String[] args) {
				DrawTableImg cg = new DrawTableImg();
				try {
					String tableData1[][] = {{"8月31日","累計使用者數","目標值","完成進度","時間進度","進度差異"},{"掌廳客戶端(戶)","469281","1500000","31.2%","33.6%","-2.4%"}};
					String[][] tableData2 = {{"8月31日(戶)","新增使用者數","日訪問量","環比上月"},{"合肥和巢湖","33.6%"},{"蕪湖",{"蚌埠",{"淮南",{"馬鞍山",{"淮北","33.6%"}};
					cg.myGraphicsGeneration(tableData2,"c:\\myPic.jpg");
				} catch (Exception e) {
					e.printStackTrace();
				}
			}

效果圖

Java生成表格圖片的例項程式碼

以上就是Java生成表格圖片的例項程式碼的詳細內容,更多關於Java生成表格圖片的資料請關注我們其它相關文章!