迷你圖是Excel工作表單元格中表示數據的微型圖表。使用迷你圖可以非常直觀的顯示數據變化趨勢,突出最大值、最小值,放在數據表格中可起到很好的數據分析效果。本文將通過Java代碼示例介紹如何在Excel中創建迷你圖表,以及編輯和刪除表格中的迷你圖表。
程序運行環境:Java、IDEA、jdk1.8.0、無需安裝Microsoft Excel
使用類庫:Free Spire.XLS for Java(免費版)
類庫獲取及導入:官網下載jar包,並解壓,將lib文件夾下的jar文件導入java程序。或者可通過maven倉庫下載導入到Maven項目。如下導入效果:
Java示例代碼
1. 創建迷你圖表
import com.spire.xls.*;
import java.awt.*;
public class CreateSparklineChart {
public static void main(String[] args) {
//創建一個Workbook類對象並加載Excel文檔
Workbook workbook = new Workbook();
workbook.loadFromFile( "test.xlsx");
//獲取第一個工作表
Worksheet sheet = workbook.getWorksheets().get(0);
//添加折線迷你圖,設置折折線迷你圖格式
SparklineGroup sparklineGroup1 = sheet.getSparklineGroups().addGroup();
sparklineGroup1.setSparklineType(SparklineType.Line);
sparklineGroup1.setSparklineColor(new Color(153,50,204));
sparklineGroup1.setShowHighPoint(true);
//設置添加折現迷你圖表的單元格以及圖表生成的數據範圍
SparklineCollection sparklines1 = sparklineGroup1.add();
sparklines1.add(sheet.getCellRange("B3:F3"), sheet.getCellRange("G3"));
//添加柱形迷你圖,並設置圖表顏色
SparklineGroup sparklineGroup2 = sheet.getSparklineGroups().addGroup();
sparklineGroup2.setSparklineType(SparklineType.Column);
sparklineGroup2.setSparklineColor(new Color(244,164,96));
sparklineGroup2.setShowHighPoint(true);
//設置添加柱形迷你圖表的單元格以及圖表生成的數據範圍
SparklineCollection sparklines2 = sparklineGroup2.add();
sparklines2.add(sheet.getCellRange("B4:F4"), sheet.getCellRange("G4"));
//添加盈虧迷你圖,並設置顏色
SparklineGroup sparklineGroup3 = sheet.getSparklineGroups().addGroup();
sparklineGroup3.setSparklineType(SparklineType.Stacked);
sparklineGroup3.setSparklineColor(new Color(255,20,147));
sparklineGroup3.setShowHighPoint(true);
//設置盈虧迷你圖表的單元格以及圖表生成的數據範圍
SparklineCollection sparklines3 = sparklineGroup3.add();
sparklines3.add(sheet.getCellRange("B5:F5"), sheet.getCellRange("G5"));
//保存文檔
workbook.saveToFile("AddSparkline.xlsx", ExcelVersion.Version2013);
workbook.dispose();
}
}
迷你圖表創建效果:
2. 編輯迷你圖表
import com.spire.xls.*;
import com.spire.xls.core.spreadsheet.ISparklineGroup;
import com.spire.xls.core.spreadsheet.ISparklines;
public class ModifySparkline {
public static void main(String[] args) {
//創建實例,加載文檔
Workbook wb = new Workbook();
wb.loadFromFile("AddSparkline.xlsx");
//獲取工作表
Worksheet sheet = wb.getWorksheets().get(0);
//修改第2個迷你圖組中迷你圖表類型和數據範圍
ISparklineGroup sparklineGroup = sheet.getSparklineGroups().get(1);
sparklineGroup.setSparklineType(SparklineType.Line);
ISparklines sparklines = sparklineGroup.get(1);
sparklines.refreshRanges(sheet.getCellRange("C4:F4"), sheet.getCellRange("G4"));
//保存文檔
wb.saveToFile("ModifySparkline.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
迷你圖表修改結果:
3. 刪除迷你圖表
import com.spire.xls.*;
import com.spire.xls.core.spreadsheet.ISparklineGroup;
public class ClearSparkline {
public static void main(String[] args) {
//創建實例,加載文檔
Workbook wb = new Workbook();
wb.loadFromFile("AddSparkline.xlsx");
//獲取工作表
Worksheet sheet = wb.getWorksheets().get(0);
//獲取第3個迷你圖表
ISparklineGroup sparklineGroup = sheet.getSparklineGroups().get(2);
//從工作表中刪除圖表
sheet.getSparklineGroups().clear((SparklineGroup) sparklineGroup);
wb.saveToFile("ClearSparkline.xlsx",ExcelVersion.Version2013);
wb.dispose();
}
}
迷你圖表刪除效果:
(本文完)