[]
        
(Showing Draft Content)

迷你图

迷你图可以理解为在单元格内绘制的小型、轻量级图表,用于快速可视化数据以改进分析。这些微小的图表适合一个单元格,并使用创建时指定的一系列单元格中的数据。通常,它们位于电子表格中选定单元格区域的旁边,以增强数据的可读性。这些特别有用;用于分析仪表板、演示文稿、业务报告等。

迷你图将最新值显示为最右侧的数据点,并将其与刻度上的早期值进行比较,从而允许您查看数据随时间的一般变化。



GcExcel Java允许您高亮显示特定信息,并使用行、列、列堆栈100和级联迷你图查看其随时间的变化。您可以使用 ISparklineGroups 接口的 add方法 与 SparkType 枚举添加行、列或列堆栈100个迷你图。但是,级联迷你图需要使用 CASCADESPARKLINE 公式添加。有关级联迷你图的更多信息,请参见SpreadJS 迷你图


使用迷你图包括以下示例:

添加一组新的迷你图

通过首先指定数据范围,然后使用ISparklineGroups接口的add方法和IRange接口的getSparklineGroups方法,可以为工作表中的每一行或每一列数据插入一组新 的 迷你图。


为了插入一组新的迷你图,请参考以下示例代码。

// Create workbook and access its first worksheet
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
        
// Defining data in the range
Object[][] data = new Object[][] 
{ 
      { 1, 2, 3 }, 
      { 4, 5, 6 }, 
      { 7, 8, 9 }, 
      { 10, 11, 12 } 
};
        
// Add a group of new sparklines
worksheet.getRange("A1:C4").setValue(data);
worksheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");

清除迷你图

您可以通过指定数据范围,然后使用ISparklineGroups接口的clear方法,从工作表中删除 迷你图。


为了清除迷你图,请参考以下示例代码。

// Defining data in the range
Object[][] data = new Object[][] 
{ 
    { 1, 2, 3 }, 
    { 4, 5, 6 }, 
    { 7, 8, 9 }, 
    { 10, 11, 12 } 
};
worksheet.getRange("A1:C4").setValue(data);
worksheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
worksheet.getRange("F1:H4").setValue(data);
        
// Add a group of new sparklines
worksheet.getRange("J1:J4").getSparklineGroups().add(SparkType.Line, "F1:H4");

// Clear D2 and J1 cell's sparkline.
worksheet.getRange("D2,J1").getSparklineGroups().clear();

清除迷你图组

您可以通过指定数据范围,然后使用ISparklineGroups界面的clearGroups方法 从电子表格中删除一组迷你图(为行或列添加) 。


为了清除迷你图组,请参考以下示例代码。

// Defining data in the range
Object[][] data = new Object[][] 
{ 
    { 1, 2, 3 }, 
    { 4, 5, 6 }, 
    { 7, 8, 9 }, 
    { 10, 11, 12 } 
};
worksheet.getRange("A1:C4").setValue(data);
        
// Add a group of new sparklines
worksheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
worksheet.getRange("F1:H4").setValue(data);
worksheet.getRange("J1:J4").getSparklineGroups().add(SparkType.Line, "F1:H4");

// Clear sparkline groups
worksheet.getRange("D2,J1").getSparklineGroups().clearGroups();

创建一组现有迷你图

您可以通过指定数据范围,然后使用ISparklineGroups的方法,在工作表中创建一组现有的 迷你图。


为了创建一组现有的迷你图,请参考以下示例代码。

// Defining data in the range
Object[][] data = new Object[][] 
{ 
    { 1, 2, 3 }, 
    { 4, 5, 6 }, 
    { 7, 8, 9 }, 
    { 10, 11, 12 } 
};
worksheet.getRange("A1:C4").setValue(data);
worksheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
worksheet.getRange("F1:H4").setValue(data);
        
// Add a group of new sparklines
worksheet.getRange("J1:J4").getSparklineGroups().add(SparkType.Column, "F1:H4");

// Create a new group, according to Range["J2"]'s sparkline group setting.
worksheet.getRange("A1:J4").getSparklineGroups().group(worksheet.getRange("J2"));

使用日期轴添加一组新的迷你图

您可以通过首先指定数据范围,然后使用ISparklineGroups接口的方法来添加一组带有日期轴的新 迷你图。


为了用日期轴添加一组新的迷你图,请参考以下示例代码。

// Defining data in the range
Object[][] data = new Object[][] 
{ 
    { 1, 2, 3 }, 
    { 4, 5, 6 }, 
    { 7, 8, 9 }, 
    { 10, 11, 12 } 
};
worksheet.getRange("A1:C4").setValue(data);
        
// Add a group of new sparklines
worksheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
Object[] date_data = new Object[] 
{ 
      new GregorianCalendar(2011, 11, 16), 
      new GregorianCalendar(2011, 11, 17),
      new GregorianCalendar(2011, 11, 18) 
};
worksheet.getRange("A7:C7").setValue(date_data);

// Set horizontal axis's Date range.
worksheet.getRange("D1").getSparklineGroups().get(0).setDateRange("A7:C7");
worksheet.getRange("D1").getSparklineGroups().get(0).getAxes().getHorizontal().getAxis().setVisible(true);
worksheet.getRange("D1").getSparklineGroups().get(0).getAxes().getHorizontal().getAxis().getColor().setColor(Color.GetGreen());
worksheet.getRange("D1").getSparklineGroups().get(0).getAxes().getVertical().setMinScaleType(SparkScale.SparkScaleCustom);
worksheet.getRange("D1").getSparklineGroups().get(0).getAxes().getVertical().setMaxScaleType(SparkScale.SparkScaleCustom);
worksheet.getRange("D1").getSparklineGroups().get(0).getAxes().getVertical().setCustomMinScaleValue(-2);
worksheet.getRange("D1").getSparklineGroups().get(0).getAxes().getVertical().setCustomMaxScaleValue(8);

配置迷你图的布局

您可以使用ISparklineGroup接口的方法来配置迷你图的布局 。


为了配置迷你图的布局,请参考以下示例代码。

// Defining data in the range
Object[][] data = new Object[][] 
{ 
    { 1, 2, 3 }, 
    { 4, 5, 6 }, 
    { 7, 8, 9 }, 
    { 10, 11, 12 } 
};
worksheet.getRange("A1:C4").setValue(data);
        
// Adding sparkline
worksheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
        
// Defining source data 
Object[] date_data = new Object[] 
{ 
      new GregorianCalendar(2011, 11, 16), 
      new GregorianCalendar(2011, 11, 17),
      new GregorianCalendar(2011, 11, 18) 
};
worksheet.getRange("A7:C7").setValue(date_data);
        
// Configuring the layout 
ISparklineGroup sparklinegroup = worksheet.getRange("D1").getSparklineGroups().get(0);
sparklinegroup.setLineWeight(2.5);
sparklinegroup.getPoints().getMarkers().getColor().setColor(Color.GetRed());
sparklinegroup.getPoints().getMarkers().setVisible(true);
sparklinegroup.getSeriesColor().setColor(Color.GetPurple());