[]
迷你图可以理解为在单元格内绘制的小型、轻量级图表,用于快速可视化数据以改进分析。这些微小的图表适合一个单元格,并使用创建时指定的一系列单元格中的数据。通常,它们位于电子表格中选定单元格区域的旁边,以增强数据的可读性。这些特别有用;用于分析仪表板、演示文稿、业务报告等。
迷你图将最新值显示为最右侧的数据点,并将其与刻度上的早期值进行比较,从而允许您查看数据随时间的一般变化。
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());