首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java Poi XSSF -创建具有多个可扩展列的数据透视表

Java Poi XSSF是一个Java库,用于处理Microsoft Excel文件。它提供了创建、读取和修改Excel文件的功能。XSSF是POI库中的一个模块,用于处理Excel 2007及以上版本的文件(.xlsx格式)。

数据透视表是一种Excel功能,用于对大量数据进行汇总和分析。它可以根据数据的不同维度(行、列、值和筛选器)创建交叉表格,并提供数据的汇总、计算和筛选功能。

Java Poi XSSF可以通过以下步骤创建具有多个可扩展列的数据透视表:

  1. 创建一个新的Excel工作簿:Workbook workbook = new XSSFWorkbook();
  2. 创建一个新的工作表:Sheet sheet = workbook.createSheet("Data");
  3. 在工作表中创建数据区域:// 创建数据区域的起始行和列 int startRow = 0; int startCol = 0; // 创建数据区域的结束行和列 int endRow = 10; int endCol = 3; // 在工作表中创建数据区域 CellRangeAddress dataRange = new CellRangeAddress(startRow, endRow, startCol, endCol); sheet.setAutoFilter(dataRange);
  4. 创建数据透视表:// 创建数据透视表的起始单元格 CellReference pivotStartCell = new CellReference("E1"); // 创建数据透视表的结束单元格 CellReference pivotEndCell = new CellReference("K10"); // 在工作表中创建数据透视表 PivotTable pivotTable = sheet.createPivotTable(dataRange, pivotStartCell, pivotEndCell);
  5. 添加行、列和值字段:// 添加行字段 PivotField rowField = pivotTable.addRowLabel(0); // 添加列字段 PivotField colField = pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 1); // 添加值字段 PivotField valueField = pivotTable.addValueLabel(2, DataConsolidateFunction.SUM);
  6. 设置数据透视表的样式和格式:// 设置数据透视表的样式 pivotTable.setTableStyle(TableStyle.MEDIUM_2); // 设置数据透视表的格式 pivotTable.setFormat(true);
  7. 保存Excel文件:FileOutputStream fileOut = new FileOutputStream("data_pivot_table.xlsx"); workbook.write(fileOut); fileOut.close();

Java Poi XSSF可以帮助开发人员轻松创建具有多个可扩展列的数据透视表。腾讯云提供了云服务器、对象存储、云数据库等相关产品,可以用于存储和处理Excel文件。您可以访问腾讯云官网了解更多关于这些产品的信息:腾讯云产品

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VBA创建多个数据数据透视

1、需求: 有多个数据,格式一致,需要创建到1个数据透视。 2、举例: 比如要分析工资数据,工资是按月分了不同Sheet管理,现在需要把12个月数据放到一起创建1个数据透视。 ?...3、代码实现 用过Excel应该都用过透视表功能,透视表功能非常强大,而且简单易用,我们一般用透视都是处理单独1个Sheet数据,如果要完成多个Sheet透视处理,可能大家想到最直接方法是复制到...我们要完成这个功能,比较好方法是用SQL语句将多个拼接到一起再用数据透视。...用SQL语句对数据格式要求比较严格,所以表格要比较规范,建议: 标题在第1行 每一保证数据格式是一致,不要又有数字又有文本 如果你会SQL语句的话,不需要VBA也可以完成这个任务,例子需要SQL...VBA.Join(arr, vbNewLine & " Union All " & vbNewLine) End Function 'str_sql sql语句 'rng 透视位置

3.3K20

设计一款扩展和基于windows系统一键处理表格小工具思路

例如,业务人员有这样需要,日常需要手工整理以下原始xlsx表格数据,这些数据格式都是固定死,他们需要去除【手机号】这一,然后在第一行增加一个表头标题【审计结果】,同时需要将【日期】格式统一整理成yyyy-mm-dd...工具开发环境如下: Java,Bat,需要依赖处理表格poimaven依赖。 一、创建一个maven工程,pom.xml依赖如下 <?...(Thread.java:745) 复制代码 查看一些资料得知,即使到了5.x版本,该bug一直没有完全修复,只能通过先删除第一后,再将第二之后数据往左移一方式,曲线解决这个反向移动问题。...二、基于Java SPI设计一套便于后期扩展接口实现 我在工程里使用到了Java SPI服务发现机制,便于后期如果有需要进行工具处理新功能扩展,只需要增加一个实现类,放到com.put.service.DisposeService...sheet,可以自行扩展 XSSFSheet sheet = workbook.getSheetAt(0); 复制代码 2、删除第一数据,然后将第二开始到最后一数据往左移动一,即原本第二变成第一

7.8K20

JAVA数据导出EXCEL方案

Excel2003格式 Excel2003支持每个工作中最多有 65536 行和 256。对于工作能够支持最大个数,受CPU反应速度和内存大小影响。...常用导出方式中POI支持该格式只有HSSF包,当导出数据量大于一页最大行数(65536)时,采取分页形式进行存储。 常用导出方式推荐:1)POI;2)JXL。...采用常用导出方式导出数据时,需要注意是Excel 2007行数和限制,常用导出方式支持该格式只有XSSF包,包含SXSSF扩展包,并且仅有SXSSF支持大数据。...时POI调用是HSSF包,当导出格式为Office 2007时,则调用XSSF包,而SXSSF包是POI3.8版本之上对XSSF一个扩展,用于大数据导出,实际应用中可有效避免内存溢出问题。...方案简介 JXL是一个开源Java Excel API项目。它能作为Java Excel API一个共同支持库,是因为它基本功能是创建,读取和写入电子表格。

6K20

Apache POI 读取 Microsoft Office Excel 文档

总之,你可以使用 Java 读写 MS Excel 文件。换句话说就是如果你希望要对 Microsoft Office 一些文档用 Java 来处理,那么你需要使用 Apache POI 项目。...简单来说就是你 Excel 版本为 07 年以后版本,使用 XSSF 就可以了,换句话说目前使用 XSSF 比较多。 XSSF 读取数据 使用 XSSF 读取数据方法比较简单。...row 对象就等于表格中一行,在一个 Excel 中可以有很多行。当你获得这一行对象后,你会有很多。 那么你需要使用 getCell 来获得指定。...当你获得指定以后,你就可以获得你需要数据了。 整体来说,Workbook 对象定义还是非常明确。 遍历数据 官方文档中,使用了 3 for 循环来遍历。...假设我们处理 Excel 数据只有 1 ,我们希望读取出来。

60720

Java 实现文件批量导入导出最佳实践(兼容xls,xlsx)

编辑:业余草 来自:cnblogs.com/laoyeye/p/6938889.html 1、介绍 java实现文件导入导出数据库,目前在大部分系统中是比较常见功能了,今天写个小demo来理解其原理...目前我所接触过导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出。...Apache POI是Apache软件基金会开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写功能。...: 错误信息 XSSF在org.apache.xssf.usemodel包,并实现Workbook接口,用于Excel文件中.xlsx格式 常用组件: XSSFWorkbook : excel文档对象...(20);//设置缺省宽 //设置指定宽,256 * 50这种写法是因为width参数单位是单个字符256分之一 sheet.setColumnWidth(cell.getColumnIndex

3.8K41

POI组件基本使用

导出 导出操作即使用 Java 写出数据到 Excel 中,常见场景是将页面上数据(可能是经过条件查询)导出,这些数据可能是财务数据,也可能是商品数据,生成 Excel 后返回给用户下载文件。...创建并导出基本数据 进行导出操作第一步是创建 Excel 文件,我们写一个方法,参数是需要写入 Excel 表格数据和生成 Excel 方式(HSSF,XSSF),返回一个 Workbook 接口对象...在方法内部我们采用反射来创建 Workbook 实例对象。 代码 探索阶段,我们先将数据类型限定为 List,并把数限定为某个数字,生成一个表格。...这里我并不想用静态常量或枚举类,打算使用注解方式来控制参数有效性。 完善 我们已经明确了两个问题: 之前程序并不能在实际场景使用,我们需要将其完善到具有处理实际数据能力。...,来处理多个对象 Excel 导出。

1.3K191

记一次悲惨 Excel 导出事件

起初使用该版本poiHSSF配合多线程生成excel,没有任何问题,后来改成了XSSF生成后上线,导出3w条数据时,cpu使用率达到了100%,内存达到了100%,打死了整个服务器!...所以本地可以模拟poi-ooxml-3.5-FINALXSSF进行大量数据导出实验,同时需要进行多线程导出。...由于不是业务代码和业务数据产生问题,在本地mock数据可以使用简单大量对象构成结构进行导出,线上30个导出,本地测试5个,线上是本地6倍,线上每一行数据量必然要比本地数据量大很多。...解决方案 查看poi官网change log http://poi.apache.org/changes.html ,既然3.5-FINALXSSF有问题,向上查找3.5-FINAL之后XSSF相关字样信息...img memory usage optimization in xssf - avoid creating parentless xml beans 在xxsf进行中做了内存优化 - 避免了创建无父类

1.1K10

建立数据驱动,关键字驱动和混合Selenium框架这些你了解吗

出于演示目的,我创建了一个名为“ LoginCredentials”Excel文件,其中用户名和密码已存储在不同中。 ? 查看下面的代码以了解测试用例。...package DataDriven; import java.io.File; import java.io.FileInputStream; import org.apache.poi.xssf.usermodel.XSSFSheet...我已经导入了Apache POI XSSF库,该库用于读取数据或将数据写入excel文件。在这里,我创建了一个构造函数(相同方法对象)以传递值:工作编号,行编号和列编号。...package KeywordDriven; import java.io.FileInputStream; import org.apache.poi.xssf.usermodel.XSSFSheet...使用此博客中上面显示示例,我们可以通过将要执行方法存储在excel文件中(关键字驱动方法)并将这些方法名称传递给Java Reflection Class(数据驱动方法)来构建混合框架,而不是创建

94420

《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)

1.简介 在自动化测试,有些我们测试数据是放到excel文件中,尤其是在做数据驱动测试时候,所以需要懂得如何操作获取excel内内容。...由于java不像python那样有直接操作Excle文件类库,所以我们必须借助第三方工具:POI(基于ApachePOI类库)。...POI使用HSSF对象操作OLE2格式Excel,文件后缀为.xls;使用XSSF、SXSSF对象操作OOXML格式Excel,文件后缀为.xlsx。...对于OLE2版本Excel,一个Sheet工作行最多支持到65536行,列支持到256; 对于OOXML版本Excel,一个Sheet工作行支持到1048576行,列支持到16384...4.4参考代码 package lessons; import java.io.File; import java.io.FileInputStream; import org.apache.poi.xssf.usermodel.XSSFSheet

1.1K40

poi技术实现Excel导入_java json库

org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFDataFormat; import org.apache.poi.xssf.usermodel.XSSFWorkbook...,增删快,与Excel顺序保持一致) * * Sheet1 ————> List1> * Sheet2 ————> List2> * * 步骤1:根据Excel...版本类型创建对于Workbook以及CellSytle * 步骤2:遍历每一个每一行每一 * 步骤3:一个sheet就是一个Json,多表就多Json,对应一个 List * 一个sheet...一行数据就是一个 Map * 一行中,就把当前列头为key,值为value存到该Map中 * * * @param file SSM框架下用户上传Excel文件 * @return Map...rowMap.put(cellNames[k],cell.getStringCellValue()); } // 保存该行数据到该

77710
领券