Java在Excel中創(chuàng)建透視表方法解析
本文內(nèi)容介紹通過Java程序在Excel表格中根據(jù)數(shù)據(jù)來創(chuàng)建透視表。
環(huán)境準備
需要使用Excel類庫工具—Free Spire.XLS for Java,這里使用的是免費版,可通過官網(wǎng)下載Jar包并解壓,手動導入lib文件夾下的Spire.Xls.jar到Java程序;或者也可以通過Maven倉庫下載導入。
Java代碼示例
import com.spire.xls.*; public class CreatePivotTable { public static void main(String[] args) { //加載Excel測試文檔 Workbook wb = new Workbook(); wb.loadFromFile("test.xlsx"); //獲取第一個的工作表 Worksheet sheet = wb.getWorksheets().get(0); //為需要匯總和分析的數(shù)據(jù)創(chuàng)建緩存 CellRange dataRange = sheet.getCellRange("A1:D10"); PivotCache cache = wb.getPivotCaches().add(dataRange); //使用緩存創(chuàng)建數(shù)據(jù)透視表,并指定透視表的名稱以及在工作表中的位置 PivotTable pt = sheet.getPivotTables().add("PivotTable",sheet.getCellRange("A12"),cache); //添加行字段1 PivotField pf1 = null; if (pt.getPivotFields().get("月份") instanceof PivotField){ pf1 = (PivotField) pt.getPivotFields().get("月份"); } pf1.setAxis(AxisTypes.Row); //添加行字段2 PivotField pf2 = null; if (pt.getPivotFields().get("廠商") instanceof PivotField){ pf2 = (PivotField) pt.getPivotFields().get("廠商"); } pf2.setAxis(AxisTypes.Row); //設(shè)置行字段的標題 pt.getOptions().setRowHeaderCaption("月份"); //添加列字段 PivotField pf3 = null; if (pt.getPivotFields().get("產(chǎn)品") instanceof PivotField){ pf3 = (PivotField) pt.getPivotFields().get("產(chǎn)品"); } pf3.setAxis(AxisTypes.Column); //設(shè)置列字段標題 pt.getOptions().setColumnHeaderCaption("產(chǎn)品"); //添加值字段 pt.getDataFields().add(pt.getPivotFields().get("總產(chǎn)量"),"求和項:總產(chǎn)量",SubtotalTypes.Sum); //設(shè)置透視表樣式 pt.setBuiltInStyle(PivotBuiltInStyles.PivotStyleDark12); //保存文檔 wb.saveToFile("數(shù)據(jù)透視表.xlsx", ExcelVersion.Version2013); wb.dispose(); } }
結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于java數(shù)組與字符串相互轉(zhuǎn)換的問題
這篇文章主要介紹了java數(shù)組與字符串相互轉(zhuǎn)換的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10Java將String字符串帶括號轉(zhuǎn)成List的簡單方法
Java中我們有時需要對現(xiàn)有的字符串進行切割并轉(zhuǎn)化成一個List集合,這篇文章主要給大家介紹了關(guān)于Java將String字符串帶括號轉(zhuǎn)成List的簡單方法,需要的朋友可以參考下2023-03-03Java解決No enclosing instance of type PrintListFromTailToHead
這篇文章主要介紹了Java解決No enclosing instance of type PrintListFromTailToHead is accessible問題的兩種方案的相關(guān)資料,需要的朋友可以參考下2016-07-07Java利用DelayQueue實現(xiàn)延遲任務(wù)代碼實例
這篇文章主要介紹了Java利用DelayQueue實現(xiàn)延遲任務(wù)代碼實例,DelayQueue?是一個支持延時獲取元素的阻塞隊列,?內(nèi)部采用優(yōu)先隊列?PriorityQueue?存儲元素,同時元素必須實現(xiàn)?Delayed?接口,需要的朋友可以參考下2023-12-12Java中的常用時間日期類總結(jié)(Date、DateFormat)
在Java開發(fā)中處理時間和日期是相當常見的任務(wù),無論是計算日期差異、格式化日期顯示、解析日期字符串還是進行日期計算,都需要一些時間和日期處理的技巧,這篇文章主要給大家介紹了關(guān)于Java中常用時間日期類(Date、DateFormat)的相關(guān)資料,需要的朋友可以參考下2024-08-08