通過圖表能更直觀的體現數據的變化趨勢。在圖表中一個數據可體現在多個數據分類標籤下,常見的生成的圖表默認含有一種分類標籤,如果需要設置多層分類標籤則可以參考以下Java代碼示例方法。
使用工具:Free Spire.XLS for Java (免費版)
Jar獲取及導入:通過官網下載jar包,並解壓將lib文件夾下的Spire.Xls.jar文件導入java程序(推薦此方法);或者通過Maven倉庫下載導入。
Java代碼示例
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class MultiLevelCategoryLabels {
public static void main(String[] args){
//創建Workbook實例,獲取工作表
Workbook wb = new Workbook();
Worksheet sheet = wb.getWorksheets().get(0);
//寫入數據到工作表
sheet.getCellRange("A2").setText("出口前");
sheet.getCellRange("A5").setText("出口後");
sheet.get("B1").setText("年份");
sheet.getCellRange("B2").setText("2017年");
sheet.getCellRange("B6").setText("2018年");
sheet.getCellRange("C1").setText("季度");
sheet.getCellRange("C2").setText("1季度");
sheet.getCellRange("C3").setText("2季度");
sheet.getCellRange("C4").setText("3季度");
sheet.getCellRange("C5").setText("4季度");
sheet.getCellRange("C6").setText("1季度");
sheet.getCellRange("C7").setText("2季度");
sheet.getCellRange("C8").setText("3季度)");
sheet.getCellRange("C9").setText("4季度");
sheet.getCellRange("D1").setText("季度產量\n(萬噸)");
sheet.getCellRange("D2").setValue("1.56");
sheet.getCellRange("D3").setValue("2.3");
sheet.getCellRange("D4").setValue("3.21");
sheet.getCellRange("D5").setValue("3.5");
sheet.getCellRange("D6").setValue("4.8");
sheet.getCellRange("D7").setValue("5.2");
sheet.getCellRange("D8").setValue("5.79");
sheet.getCellRange("D9").setValue("5.58");
//合併單元格,設置單元格對齊方式
sheet.getCellRange("A2:A4").merge();
sheet.getCellRange("A5:A9").merge();
sheet.getCellRange("B2:B5").merge();
sheet.getCellRange("B6:B9").merge();
sheet.getCellRange("A1:D9").getStyle().setHorizontalAlignment(HorizontalAlignType.Center);
sheet.getCellRange("A1:D9").getStyle().setVerticalAlignment(VerticalAlignType.Center);
//添加柱狀圖表
Chart chart = sheet.getCharts().add(ExcelChartType.LineMarkers);
chart.setChartTitle("季度產量(萬噸)");//設置圖表標題
chart.getPlotArea().getFill().setFillType(ShapeFillType.NoFill); //不填充繪圖區域(默認填充灰色)
chart.getLegend().delete();//刪除圖例
//指定柱狀圖表在工作表中的位置及寬度
chart.setLeftColumn(5);
chart.setTopRow(1);
chart.setRightColumn(14);
//設置圖表系列數據來源
chart.setDataRange(sheet.getCellRange("D2:D9"));
chart.setSeriesDataFromRange(false);
chart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().hasValue();
chart.getSeries().get(0).getFormat().getLineProperties().setColor(new Color(123,104,238));
//設置系列分類標籤數據來源
ChartSerie serie = chart.getSeries().get(0);
serie.setCategoryLabels(sheet.getCellRange("A2:C9"));
//顯示多層分類標籤
chart.getPrimaryCategoryAxis().setMultiLevelLable(true);
//保存文檔
wb.saveToFile("output.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}