詳解如何在Java中創(chuàng)建Excel迷你圖
前言
迷你圖是一種簡潔而有效的數(shù)據(jù)可視化方式,常用于展示趨勢和變化。它通常由一組小型的線條或柱狀圖組成,用于表示數(shù)據(jù)的變化情況。迷你圖的主要特點是占用空間少且易于理解。
迷你圖通常被用于數(shù)據(jù)儀表盤、報告和展示中,以便在有限的空間內(nèi)展示多個數(shù)據(jù)集的趨勢。通過迷你圖,使用者可以快速地分析數(shù)據(jù)的變化趨勢,發(fā)現(xiàn)關(guān)鍵信息。今天小編為大家介紹如何在Java中創(chuàng)建Excel迷你圖。
1.在Java中創(chuàng)建迷你圖
Excel的迷你圖一共有三種:
- 折線圖
- 柱形圖
- 盈虧圖
通過下面的代碼,可以輕松創(chuàng)建出三種迷你圖。
Workbook wb = new Workbook(); IWorksheet sheet = wb.getActiveSheet(); // 定義數(shù)據(jù) 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");
實現(xiàn)效果如下圖所示:
2.在Java中創(chuàng)建迷你圖組合
在 Excel 中,創(chuàng)建多個迷你圖時,會自動為他們添加一個組合,同一個組合的迷你圖會使用相同的設(shè)置(如:線型)。當(dāng)選擇一個迷你圖時,Excel會把相同組合的迷你圖用藍(lán)框同時選中。
而在Java中也提供了對應(yīng)的 API 可以對已有的迷你圖重新創(chuàng)建組合,也可以通過組合來修改迷你圖的配置。
(1)對已有的迷你圖添加組合
// 創(chuàng)建workbook,并獲取當(dāng)前sheet Workbook wb = new Workbook(); IWorksheet sheet = wb.getActiveSheet(); // 定義數(shù)據(jù)區(qū)域 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"); // 基于區(qū)域"J2"的迷你圖設(shè)置,創(chuàng)建一個新的組合 sheet.getRange("A1:J4").getSparklineGroups().group(sheet.getRange("J2")); wb.save("output/sparkline.xlsx");
實現(xiàn)效果如下圖所示,可以看到因為新創(chuàng)建了組合,D1:D4的折線迷你圖,變成了柱形迷你圖。
(2)修改組合的配置和迷你圖樣式
// 創(chuàng)建workbook,并獲取當(dāng)前sheet Workbook wb = new Workbook(); IWorksheet sheet = wb.getActiveSheet(); // 定義數(shù)據(jù)區(qū)域 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"); // 定義日期數(shù)據(jù) 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");
實現(xiàn)效果如下圖所示:
總結(jié)
以上就是關(guān)于迷你圖用法的介紹。如果您想進(jìn)一步了解有關(guān)迷你圖更多的玩法和技巧,可以參考這個幫助手冊,在手冊中包含了有關(guān)于迷你圖更多的用法,無論是初學(xué)者還是有經(jīng)驗的專業(yè)人士,該幫助手冊都將為您提供有價值的指導(dǎo)和幫助。
以上就是詳解如何在Java中創(chuàng)建Excel迷你圖的詳細(xì)內(nèi)容,更多關(guān)于Java創(chuàng)建Excel迷你圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決Feign調(diào)用的GET參數(shù)傳遞的問題
這篇文章主要介紹了解決Feign調(diào)用的GET參數(shù)傳遞的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java實戰(zhàn)之藥品管理系統(tǒng)的實現(xiàn)
這篇文章主要介紹了利用Java實現(xiàn)的藥品管理系統(tǒng),本項目屬于前后端分離的項目,分為兩個角色藥品管理員和取藥處人員,感興趣的小伙伴可以學(xué)習(xí)一下2022-04-04詳解Java集合中的基本數(shù)據(jù)結(jié)構(gòu)
總有小伙伴讓我總結(jié)一下Java集合中的基本數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識,今天特地整理了本篇文章,文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06springboot連接不同數(shù)據(jù)庫的寫法詳解
這篇文章主要介紹了springboot連接不同數(shù)據(jù)庫的寫法?,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04