日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Aspose.Cells生成Excel图表

發布時間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Aspose.Cells生成Excel图表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

動態插入數據,根據插入的數據生成Chart,用的Excel組件,Aspose.Cells for Java,https://apireference.aspose.com/cells/java

先看一下效果圖

示例代碼

我是需要用到報表模板

Workbook wb; try {// 讀取jar中報表模板ClassPathResource resource = new ClassPathResource("exportTemplate/" + templateName);InputStream fis = resource.getInputStream();wb = new Workbook(fis); } catch (Exception e) {throw new BaseException("讀取報表模板失敗!"); }

不需要直接

Workbook workbook = new Workbook();

往第一個sheet,插入點測試數據

Worksheet sheet = workbook.getWorksheets().get(0);Cells cells = sheet.getCells(); cells.get(0, 1).putValue("Income"); cells.get(1, 0).putValue("3月10日"); cells.get(2, 0).putValue("3月11日"); cells.get(3, 0).putValue("3月12日"); cells.get(1, 1).putValue(22.322); cells.get(2, 1).putValue(22.844); cells.get(3, 1).putValue(23.499); cells.get(1, 2).putValue(26.869); cells.get(2, 2).putValue(26.636); cells.get(3, 2).putValue(26.633); cells.get(1, 3).putValue(1.64); cells.get(2, 3).putValue(1.75); cells.get(3, 3).putValue(1.62);

插入Chart

int chartIndex = sheet.getCharts().add(ChartType.LINE, 16, 0, 36, 8); Chart chart = sheet.getCharts().get(chartIndex); chart.getNSeries().add("B2:B4", true); chart.getNSeries().add("C2:C4", true); chart.getNSeries().add("D2:D4", true); // chart.getNSeries().addR1C1("R[1]C[1]:R[3]C[2]", true); chart.getNSeries().setCategoryData("A2:A4"); // Series aSeries = chart.getNSeries().get(0); // aSeries.setName("=B1"); chart.setShowLegend(true); chart.getTitle().setText("Income Analysis");for (int i = 0; i < chart.getNSeries().getCount(); i++) {//設置每條折線的名稱chart.getNSeries().get(i).setName("折線" + i);//設置每個值坐標點的樣式Marker marker = chart.getNSeries().get(i).getMarker();marker.setMarkerStyle(ChartMarkerType.AUTOMATIC);marker.setMarkerSizePx(10); } // 設置右邊坐標軸顯示 chart.getSecondValueAxis().setVisible(true); // 設置圖例的位置 Legend legend = chart.getLegend(); legend.setPosition(LegendPositionType.BOTTOM); legend.getBorder().setVisible(false);chart.getPlotArea().getArea().setForegroundColor(Color.getTransparent());

保存

try {workbook.save(reportPath); } catch (Exception exception) { }

?2022年3月26日補充,坐標軸標題過長不能自動居中,暫時先手動設置位置,查閱官方文檔,也沒理解setX(),setY()啥意思到底

chart.getValueAxis().getTitle().setY(-200);

設置折線的顏色樣式

Series series = chart.getNSeries().get(0); series.getBorder().setColor(Color.fromArgb(68, 114, 196)); series.getBorder().setWeight(WeightType.MEDIUM_LINE);

?設置坐標點顏色樣式,這里如果MarkerStyle set的是AUTOMATIC,顏色樣式設了就不起作用

// 設置每個值坐標點的樣式 Marker marker = chart.getNSeries().get(0).getMarker(); marker.getBorder().setColor(Color.getBlack()); marker.getArea().setForegroundColor(Color.fromArgb(68, 114, 196)); marker.setMarkerStyle(ChartMarkerType.CIRCLE); marker.setMarkerSizePx(10);

總結

以上是生活随笔為你收集整理的Aspose.Cells生成Excel图表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。