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