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