Aspose.Cells生成Excel图表
生活随笔
收集整理的這篇文章主要介紹了
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图表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么升级计算机硬盘,研究僧 篇一:记一次
- 下一篇: python 定时自动爬取_python