您好,登錄后才能下訂單哦!
利用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,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("微軟雅黑",Font.BOLD,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("微軟雅黑",Font.PLAIN,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日(戶)","新增用戶數","日訪問量","累計用戶數","環比上月"}, {"合肥和巢湖","469281","1500000","31.2%","33.6%"}, {"蕪湖","469281","1500000","31.2%","33.6%"}, {"蚌埠","469281","1500000","31.2%","33.6%"}, {"淮南","469281","1500000","31.2%","33.6%"}, {"馬鞍山","469281","1500000","31.2%","33.6%"}, {"淮北","469281","1500000","31.2%","33.6%"}}; cg.myGraphicsGeneration(tableData2, "c:\\myPic.jpg"); } catch (Exception e) { e.printStackTrace(); } }
效果圖
關于利用Java如何實現生成一個表格圖片問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。