欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實現(xiàn)定制數(shù)據(jù)透視表的示例詳解

 更新時間:2023年12月25日 14:00:23   作者:葡萄城官網(wǎng)  
數(shù)據(jù)透視表(Pivot?Table)是一種數(shù)據(jù)分析工具,通常用于對大量數(shù)據(jù)進行匯總、分析和展示,本文主要介紹了如何使用Java將計算項添加到數(shù)據(jù)透視表中,感興趣的可以了解下

前言

數(shù)據(jù)透視表(Pivot Table)是一種數(shù)據(jù)分析工具,通常用于對大量數(shù)據(jù)進行匯總、分析和展示。它可以幫助用戶從原始數(shù)據(jù)中提取關鍵信息、發(fā)現(xiàn)模式和趨勢,并以可視化的方式呈現(xiàn)。

在數(shù)據(jù)透視表中,數(shù)據(jù)分析師通常希望進行自定義計算。 例如,組合“數(shù)量”和“單價”字段即可獲得“銷售額”。 但是在某些情況中,數(shù)據(jù)分析師需要對一些數(shù)據(jù)進行合并,比如在大區(qū)消費表中,需要把所有”黑龍江“的數(shù)據(jù)、”吉林“的數(shù)據(jù)和”遼寧“的數(shù)據(jù)合并在一起成為“東北“的數(shù)據(jù)。

而數(shù)據(jù)透視表的計算項功能則可以滿足這樣的業(yè)務需求。 因此小編今天為大家介紹的是如何使用Java將計算項添加到數(shù)據(jù)透視表中,具體步驟如下:

  • 加載工作簿
  • 創(chuàng)建數(shù)據(jù)透視表說
  • 將計算項添加到數(shù)據(jù)透視表
  • 隱藏重復的名稱項
  • 保存工作簿

使用案例

現(xiàn)在某公司的采購經(jīng)理需要基于下圖(消費數(shù)據(jù)表)來分析訂單的狀態(tài),并把除了”完成“之外的狀態(tài)全部歸類為”未完成“,并根據(jù)產(chǎn)品名稱將所有”未完成“的產(chǎn)品金額疊加起來。

步驟一 加載工作簿

將上面的消費數(shù)據(jù)表工作簿加載進來。

Workbook workbook = new Workbook();
workbook.open("SalesData.xlsx");

步驟二 創(chuàng)建數(shù)據(jù)透視表

加載完工作簿之后,接下來為訂單數(shù)據(jù)添加數(shù)據(jù)透視表:

//添加一個sheet
IWorksheet pivotSheet = workbook.getWorksheets().add();
pivotSheet.setName("銷售分析");

//添加透視表
IPivotCache pivotCache = workbook.getPivotCaches().create(workbook.getWorksheets().get(0).getRange("A1:G71"));
IPivotTable pivotTable = pivotSheet.getPivotTables().add(pivotCache, pivotSheet.getRange("A1"));
pivotTable.getPivotFields().get("產(chǎn)品").setOrientation(PivotFieldOrientation.RowField);
pivotTable.getPivotFields().get("狀態(tài)").setOrientation(PivotFieldOrientation.RowField);
pivotTable.getPivotFields().get("分類").setOrientation(PivotFieldOrientation.ColumnField);
pivotTable.getPivotFields().get("金額").setOrientation(PivotFieldOrientation.DataField);
pivotTable.getDataFields().get("求和項:金額").setNumberFormat("$#,##0_);($#,##0)");

顯示效果如下所示:按照產(chǎn)品名將所有的消費訂單進行分類。

步驟三 給透視表添加計算項

數(shù)據(jù)透視表準備就緒后,下一步是添加計算項。 通過ICalculatedItems 接口將計算項的集合添加到數(shù)據(jù)透視表字段。 添加名稱和表達式,如下所示:

//基于狀態(tài)字段創(chuàng)建計算項
ICalculatedItems statusCalcItems_lost = pivotTable.getPivotFields().get("狀態(tài)").getCalculatedItems();

//給計算項添加表達式
statusCalcItems_lost.add("未完成", "=失敗+退回+暫停");

此時的數(shù)據(jù)透視表將如下所示:已經(jīng)出現(xiàn)了”未完成“狀態(tài)的訂單。

步驟四 隱藏不需要的項(失敗、退回和暫停)

添加計算項后,需要隱藏與計算項重復的項并避免重復計算:

//隱藏被歸為“未完成”的字段
IPivotItems status = pivotTable.getPivotFields().get("狀態(tài)").getPivotItems();
status.get("失敗").setVisible(false);
status.get("退回").setVisible(false);
status.get("暫停").setVisible(false);

顯示效果如下:所有的”失敗“、”退會“和”暫停“的數(shù)據(jù)已經(jīng)不見了。

步驟五 保存為Excel

最后,對單元格應用樣式和格式、調整列寬等并保存工作簿。 最終報告如下圖所示:

workbook.Save("數(shù)據(jù)透視表自定義計算.xlsx");

最后的實現(xiàn)效果如下圖所示:

總結

以上就是使用Java給數(shù)據(jù)透視表中添加計算項的具體步驟,除了文中介紹的功能之外,計算項還可以實現(xiàn)下列的功能:

  • 計算特定產(chǎn)品的折扣價格
  • 計算一個項目與其他項目相比的百分比份額
  • 使用備用名稱引用字段項目

到此這篇關于java實現(xiàn)定制數(shù)據(jù)透視表的示例詳解的文章就介紹到這了,更多相關java數(shù)據(jù)透視表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java8新特性之重復注解(repeating annotations)淺析

    Java8新特性之重復注解(repeating annotations)淺析

    這篇文章主要介紹了Java8新特性之重復注解(repeating annotations)淺析,這個新特性只是修改了程序的可讀性,是比較小的一個改動,需要的朋友可以參考下
    2014-06-06
  • java中通用的線程池實例代碼

    java中通用的線程池實例代碼

    java中通用的線程池實例代碼,需要的朋友可以參考一下
    2013-03-03
  • Java中的值傳遞和引用傳遞實例介紹

    Java中的值傳遞和引用傳遞實例介紹

    java 中沒有引用傳遞,都是值傳遞的,可以通過傳遞副本修改對象的,副本交換,并不影響原引用
    2013-09-09
  • Spring用代碼來讀取properties文件實例解析

    Spring用代碼來讀取properties文件實例解析

    這篇文章主要介紹了Spring用代碼來讀取properties文件實例解析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 詳解Java枚舉與接口常量和類常量的區(qū)別

    詳解Java枚舉與接口常量和類常量的區(qū)別

    這篇文章主要為大家詳細介紹了Java中枚舉與接口常量、類常量有什么區(qū)別,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的可以了解一下
    2022-10-10
  • Mybatis-Plus主鍵生成策略的方法

    Mybatis-Plus主鍵生成策略的方法

    本文主要介紹了Mybatis-Plus主鍵生成策略的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Java中的Gradle與Groovy的區(qū)別及存在的關系

    Java中的Gradle與Groovy的區(qū)別及存在的關系

    這篇文章主要介紹了Java中的Gradle與Groovy的區(qū)別及存在的關系,Groovy是一種JVM語言,它可以編譯為與Java相同的字節(jié)碼,并且可以與Java類無縫地互操作,Gradle是Java項目中主要的構建系統(tǒng)之一,下文關于兩者的詳細內容,需要的小伙伴可以參考一下
    2022-02-02
  • 通過Java實現(xiàn)自己動手寫ls命令

    通過Java實現(xiàn)自己動手寫ls命令

    在前面的文章中,我們仔細的介紹了關于ls命令的使用和輸出結果,在本篇文章當中我們用Java代碼自己實現(xiàn)ls命令,更加深入的了解ls命令
    2022-10-10
  • RabbitMQ實現(xiàn)消息可靠性傳遞過程講解

    RabbitMQ實現(xiàn)消息可靠性傳遞過程講解

    消息的可靠性傳遞是指保證消息百分百發(fā)送到消息隊列中去,這篇文章主要介紹了RabbitMQ實現(xiàn)消息可靠性傳遞過程,感興趣想要詳細了解可以參考下文
    2023-05-05
  • springboot跨域問題解決方案

    springboot跨域問題解決方案

    這篇文章主要介紹了springboot跨域問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01

最新評論