摘要:本文由葡萄城技術團隊原創并首發。轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
前言
迷你圖是一種簡潔而有效的數據可視化方式,常用于展示趨勢和變化。它通常由一組小型的線條或柱狀圖組成,用于表示數據的變化情況。迷你圖的主要特點是占用空間少且易于理解。
迷你圖通常被用于數據儀表盤、報告和展示中,以便在有限的空間內展示多個數據集的趨勢。通過迷你圖,使用者可以快速地分析數據的變化趨勢,發現關鍵信息。今天小編為大家介紹如何在Java中創建Excel迷你圖。
1.在Java中創建迷你圖
Excel的迷你圖一共有三種:
- 折線圖
- 柱形圖
- 盈虧圖
通過下面的代碼,可以輕松創建出三種迷你圖。
Workbook wb = new Workbook();
IWorksheet sheet = wb.getActiveSheet();
// 定義數據
Object[][] data = new Object[][]
{
{1, -3, 2},
{4, -6, 5},
{7, -9, 8},
{10, 12, -11}
};
sheet.getRange("A1:C4").setValue(data);
// 添加迷你圖
sheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
sheet.getRange("E1:E4").getSparklineGroups().add(SparkType.Column, "A1:C4");
sheet.getRange("F1:F4").getSparklineGroups().add(SparkType.ColumnStacked100, "A1:C4");
wb.save("output/sparkline.xlsx");
實現效果如下圖所示:
2.在Java中創建迷你圖組合
在 Excel 中,創建多個迷你圖時,會自動為他們添加一個組合,同一個組合的迷你圖會使用相同的設置(如:線型)。當選擇一個迷你圖時,Excel會把相同組合的迷你圖用藍框同時選中。
而在Java中也提供了對應的 API 可以對已有的迷你圖重新創建組合,也可以通過組合來修改迷你圖的配置。
(1)對已有的迷你圖添加組合
// 創建workbook,并獲取當前sheet
Workbook wb = new Workbook();
IWorksheet sheet = wb.getActiveSheet();
// 定義數據區域
Object[][] data = new Object[][]
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
{ 10, 11, 12 }
};
sheet.getRange("A1:C4").setValue(data);
sheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
sheet.getRange("F1:H4").setValue(data);
// 添加一組新的迷你圖
sheet.getRange("J1:J4").getSparklineGroups().add(SparkType.Column, "F1:H4");
// 基于區域"J2"的迷你圖設置,創建一個新的組合
sheet.getRange("A1:J4").getSparklineGroups().group(sheet.getRange("J2"));
wb.save("output/sparkline.xlsx");
實現效果如下圖所示,可以看到因為新創建了組合,D1:D4的折線迷你圖,變成了柱形迷你圖。
(2)修改組合的配置和迷你圖樣式
// 創建workbook,并獲取當前sheet
Workbook wb = new Workbook();
IWorksheet sheet = wb.getActiveSheet();
// 定義數據區域
Object[][] data = new Object[][]
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
{ 10, 11, 12 }
};
sheet.getRange("A1:C4").setValue(data);
// 添加迷你圖
sheet.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)
};
sheet.getRange("A7:C7").setValue(date_data);
// 修改迷你圖的配置
ISparklineGroup sparklinegroup = sheet.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());
wb.save("output/sparkline.xlsx");
實現效果如下圖所示:
總結
以上就是關于迷你圖用法的介紹。如果您想進一步了解有關迷你圖更多的玩法和技巧,可以參考這個幫助手冊,在手冊中包含了有關于迷你圖更多的用法,無論是初學者還是有經驗的專業人士,該幫助手冊都將為您提供有價值的指導和幫助。
擴展鏈接:
從表單驅動到模型驅動,解讀低代碼開發平臺的發展趨勢
低代碼開發平臺是什么?
基于分支的版本管理,幫助低代碼從項目交付走向定制化產品開發