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

Apache POI -有没有办法计算字符串在数据透视表中的出现次数?

Apache POI是一个用于操作Microsoft Office文档的Java库。它提供了一组API,可以读取、写入和操作Excel、Word和PowerPoint文档。

在数据透视表中计算字符串的出现次数,可以通过以下步骤实现:

  1. 使用Apache POI读取Excel文件,打开包含数据透视表的工作簿。
  2. 通过工作簿对象获取数据透视表的引用。
  3. 使用数据透视表的引用获取数据透视表的数据源范围。
  4. 遍历数据源范围,逐个单元格获取其值。
  5. 将单元格的值与目标字符串进行比较,如果匹配则计数器加一。
  6. 完成遍历后,得到字符串在数据透视表中的出现次数。

以下是一个示例代码,演示如何使用Apache POI计算字符串在数据透视表中的出现次数:

代码语言:txt
复制
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.IOException;

public class PivotTableStringCount {
    public static void main(String[] args) {
        try {
            // 打开Excel文件
            FileInputStream file = new FileInputStream("path/to/your/excel/file.xlsx");
            Workbook workbook = new XSSFWorkbook(file);

            // 获取数据透视表
            Sheet pivotSheet = workbook.getSheet("PivotTableSheet");
            PivotTable pivotTable = pivotSheet.getPivotTables().get(0);

            // 获取数据透视表的数据源范围
            AreaReference source = pivotTable.getPivotCacheDefinition().getAreaReferences()[0];
            Sheet sourceSheet = workbook.getSheet(source.getFirstSheetName());
            CellRangeAddress sourceRange = source.getFirstCell().getCellRangeAddress(sourceSheet);

            // 计数器
            int count = 0;

            // 遍历数据源范围,计算字符串出现次数
            for (int row = sourceRange.getFirstRow(); row <= sourceRange.getLastRow(); row++) {
                for (int col = sourceRange.getFirstColumn(); col <= sourceRange.getLastColumn(); col++) {
                    Row currentRow = sourceSheet.getRow(row);
                    Cell currentCell = currentRow.getCell(col);

                    if (currentCell != null && currentCell.getCellType() == CellType.STRING) {
                        String cellValue = currentCell.getStringCellValue();
                        if (cellValue.equals("targetString")) {
                            count++;
                        }
                    }
                }
            }

            System.out.println("字符串在数据透视表中出现的次数:" + count);

            // 关闭文件
            workbook.close();
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

请注意,上述示例代码仅为演示目的,实际使用时需要根据实际情况进行适当修改。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理大规模的非结构化数据。产品介绍链接地址:https://cloud.tencent.com/product/cos

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

相关·内容

终于有一款组件可以全面超越Apache POI

GrapeCity Documents出现以前,服务端文档组件向来以Apache POI为代表,作为一款由Java编写开源API库,Apache POI 主要应用于对Microsoft Office...Apache POI,支持公式数量很少(虽然Apache POI网站罗列了280多种可评估公式,但在API仅显示为157种)。...但是,用户可以使用shiftRows()/ ShiftColumns()并以编程方式对数据进行排序。 切片器 GcExcel支持带有数据透视切片器,而Apache POI则不支持。 10....设置:计算和保存20,000 * 30个单元格公式,结果如下: GcExcel 用时不超过1S ;Apache POI 则达到10S左右 ?...以上,就是GrapeCity Documents 与Apache POI 功能和性能上对比测试,从数据可见,无论是运行速度,还是内存消耗,GrapeCity Documents 都要比Apache

3.3K10
  • 一小时教你轻松学会使用Java 整合 Easy Excel 操作 Excel 文件

    文章目录 一、Apache POI简介 二、POI操作Excel 构建maven项目导入依赖 使用POI实现基本写操作 使用POI实现大数据量写操作 使用POI实现基本读操作 使用POI读取不同类型数据...三、Easy Excel简介 构建maven项目导入依赖 实现写操作 实现读操作 目前市面上比较流行操作Excel 文件工具大致有两个,一个是Apache POI、另一个是阿里Easy Excel...一、Apache POI简介 Apache POI 是用Java编写免费开源跨平台 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写功能...Apache POI官网:https://poi.apache.org/ 基本功能: HSSF:提供读写Microsoft Excel格式文档功能。...他能让你在不用考虑性能、内存等因素情况下,快速完成Excel读、写等功能。EasyExcel基于POI进行封装优化,降低内存使用,再大excel也不会出现内存溢出,让使用更加简单方便。

    1.4K30

    如何选择最适合您Excel处理库?

    为了帮助开发者更好地了解它们之间差异和不同适用场景,本文将对GcExcel和POI进行对比,并探讨它们实际应用差异和适用领域。...POI不支持切片器,数据透视图,迷你图等功能,无法对这些功能进行修改。 写入功能 读写功能是Excel处理库最基本两个功能,写入方面两者都支持写入数据、样式和公式到Excel文件。...此外GcExcel除了把数据保存为Excel,还支持把数据保存为CSV,把工作簿或者工作转换为PDF,或者转换为HTML以及图片等功能,可以适应更多场景。...GcExcel 从图表转换图片 公式计算 GcExcel和POI均支持Excel公式计算POI公式支持分为两部分,代码已知公式,以及实现逻辑公式。...此外在相同配置下,GcExcel可以打开1500万个单元格Excel,时间也只需要9.4秒,而POI则会出现问题。 用户体验 从用户体验角度来看,GcExcel易用性和文档支持方面表现出色。

    20820

    POI和EasyExcel-你还在为导入导出数据苦恼吗?

    文章目录 写在前面 POI 导入依赖 写入 读取 计算公式 EasyExcel 导入依赖 写入 读取 实战 写在前面 ---- 开发中经常会涉及到excel处理,比如导出用户信息为excel表格...、打印报表、月销售情况、成绩单等等(导出数据),还有将excel信息录入到网站数据库等(导入数据),我们不可能手动操作,所以介绍ApachePOI和阿里巴巴EasyExcel。...POI ---- Apache POIApache软件基金会开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写功能。...官网https://poi.apache.org/ xls和xlsx 首先注意下xls(2003版)和xlsx(2007版)区别,都是excel格式,后缀名不同。...实战 ---- 数据来源是爬虫(因为我没有数据库和数据 ),Jsoup爬虫可参考我另一篇博客,用数据库也是一样,怎么拿到数据都行,重点演示下POI

    4.8K11

    Apache POI与easyExcel:Excel文件导入导出技术深度分析

    导入Excel文件时,Apache POI会将整个文件加载到内存,然后提供API来访问和操作文件各个元素,如单元格、行、列等。...导出Excel文件时,Apache POI同样需要将所有数据加载到内存,然后一次性写入文件。这种方式处理大量数据时可能会变得非常缓慢,并且需要大量内存资源。...类来确保无论单元格包含何种类型数据(如数字、日期或文本),都能以合适格式返回其字符串表示形式。...接下来,您可以工作创建行和单元格,并设置它们值。最后,将工作簿写入到文件系统。...异常处理:EasyExcel 提供了更加友好异常处理机制,帮助开发者快速定位和处理读写过程可能出现问题。

    1.3K20

    POI操作Excel入门案例(Spring boot)

    一、简介 Apache POIApache软件基金会免费开源跨平台 Java API,POI提供API给Java程序对Microsoft Office格式(Excel、WORD、PowerPoint...字符串、数字、布尔等 setCellStyle():设置单元格样式 String getStringCellValue():获取单元格字符串值 setCellStyle(HSSFCellStyle...style):设置单元格样式,例如字体、加粗、格式化 setCellFormula(String formula):设置计算公式,计算结果作为单元格值,也提供了异常常用函数,如求和"sum...:导入EXCEL表格 从本地导入EXCEL表格内容,并将结果封装到List集合,为了方便阅读,这里把异常都抛出,实际情况下,应该对异常进行捕获,并进行处理; import org.apache.poi.hssf.usermodel.HSSFRow...; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook;

    51810

    poi与easyexcel

    poi与easyexcel poi 介绍 Aache POIApache软件基金会开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写功能。...excel Sheet=====就是你创建那个excel表里面的sheet Row=====就是你创建那个excel一行 Cell=====就是你创建那个excel一行第几个,从0...; ​ import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet...EasyExcel能大大减少占用内存主要原因是解析Excel时没有将文件数据一次性全部加载到内存,而是从磁盘上一行行读取数据,逐个解析。...   System.out.println(JSON.toJSONString(data));    list.add(data);    /*// 达到BATCH_COUNT了,需要去存储一次数据

    91011

    基于机器学习方法POI品类推荐算法

    美团商家数据中心(MDC),有超过100w已校准审核POI数据(我们一般将商家标示为POIPOI基础信息包括:门店名称、品类、电话、地址、坐标等)。...然后遍历这个文本,对应文本出现某个单词,向量对应位置,填入“某个值”(即特征词权重,包括BOOL权重,词频权重,TFIDF权重)。...产生粗糙字典集合时,我们还统计了校准POI,每个品类(type_id),以及特征词(term)品类(type_id)出现次数(文档频率)。...分别记: A(i,j) = 特征词term(i) 品类为type_id(j)出现次数count T(j) = 品类为type_id(j)样本集出现次数 N = 已校准...POI数据数量 这些统计量,将在后续计算中发挥它们作用。

    2.7K50

    基于机器学习方法POI品类推荐算法

    前言 美团商家数据中心(MDC),有超过100w已校准审核POI数据(我们一般将商家标示为POIPOI基础信息包括:门店名称、品类、电话、地址、坐标等)。...然后遍历这个文本,对应文本出现某个单词,向量对应位置,填入“某个值”(即特征词权重,包括BOOL权重,词频权重,TFIDF权重)。...产生粗糙字典集合时,我们还统计了校准POI,每个品类(type_id),以及特征词(term)品类(type_id)出现次数(文档频率)。...分别记: A(i,j) = 特征词term(i) 品类为type_id(j)出现次数count T(j) = 品类为type_id(j)样本集出现次数 N = 已校准...POI数据数量 这些统计量,将在后续计算中发挥它们作用。

    1.6K70

    poi与easyexcel

    poi与easyexcel poi 介绍 Aache POIApache软件基金会开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写功能。...excel Sheet=====就是你创建那个excel表里面的sheet Row=====就是你创建那个excel一行 Cell=====就是你创建那个excel一行第几个,从0...; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet...EasyExcel能大大减少占用内存主要原因是解析Excel时没有将文件数据一次性全部加载到内存,而是从磁盘上一行行读取数据,逐个解析。...System.out.println(JSON.toJSONString(data)); list.add(data); /*// 达到BATCH_COUNT了,需要去存储一次数据

    26820

    【高端分析】城市功能区混合度计算

    所以使用熵来计算城市功能混合度,木有一点问题。 干货时间 首先我依然沿用十六便士思路,通过POI计算城市混合程度。 数据 我使用功能区与POI如下图所示: ?...计算频数 第一步,我将使用交集制表方式来获取每个功能区各个类别POI频数 ? ? 得到结果 ? 分类汇总 然后根据功能区地块标识,来汇总其POI点总数 ? ? 得到结果 ?...数据融合【一】 这个跟上一篇推送中讲数据融合不同,上次是空间层面的融合,这次数属性层面的融合:关联 ? ?...得到结果 连接后,添加POI比例字段,并使用PNT_COUNT除以SUM_PNT_COUNT,来获取其值 ? 透视分析 接下来,使用透视分析,来获取每个功能区地块所包含每个类别要素个数 ? ?...数据融合【二】 再次连接,这里需要关联两次: 1、把计算比例关联到每个功能区地块; 2、每块地样本总数,也需要关联到功能区地块上(这个计算时候需要用到)。 得到结果 ?

    4.3K21

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

    不管这个Jexcel只能操作2003版本excel,我们先来看看如何读取一个2003版本excel内数据。.../ 一个是ApachePOI(Poor Obfuscation Implementation)官网地址:http://poi.apache.org/ POI支持微软OLE2格式文件Office 2003...\\Files\\test-data1.xlsx")); //获取工作簿第一个工作引用 Sheet sheet1 = wrk1.getSheet(...\\Files\\test-data1.xls")); 2)下面的行用于获取Excel文件第一个工作。 以类似方式,如果您正在处理Excel文件有多个工作,则可以获取任何其他工作。...Sheet sheet1 = wrk1.getSheet(0); 3)下面的代码根据传递给getCell方法参数为我们提供了对工作特定单元格引用。 第一个参数表示列,第二个参数表示行。

    87020

    2022年最新Python大数据之Excel基础

    中位数:是指将数据按大小顺序排列起来,形成一个数列,居于数列中间位置那个数据。 众数:众数是指一组数据出现次数最多那个数据,一组数据可以有多个众数,也可以没有众数。...数据计算 1.简单计算 Excel,使用函数要学会为单元格“命名”。...不要有合并单元格 数据透视原始表格不要有合并单元格存在,否则容易导致透视分析错误 填充合并单元格办法:取消合并单元格 ->选中要填充空单元格 ->输入公式->按Ctrl+Enter键重复操作...创建数据透视 •使用推荐透视 原始数据,单击【插入】选项卡下【表格】组【推荐数据透视】按钮,即可出现一系列推荐透视 。...如下图所示,选中不同透视右边可以看到透视明细。 •自定义建立透视 自定义建立透视方法是,单击【插入】选项卡下【数据透视】按钮,出现如下图所示对话框。

    8.2K20

    poi技术实现Excel导入_java json库

    解决方案 方案1:百度一下,全是java使用jxl去做,我一开始也尝试这样做,但是卡死一个地方,我们公司SSM框架用户上传File是MultipartFile,它流InputStream构造...org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFDataFormat; import org.apache.poi.xssf.usermodel.XSSFWorkbook...POIAPI来操作Excel,读取内容后保存到List,再将List转Json(推荐Linked,增删快,与Excel顺序保持一致) * * Sheet1 ————> List1<Map<列头...* 步骤3:一个sheet就是一个Json,多表就多Json,对应一个 List * 一个sheet一行数据就是一个 Map * 一行一列,就把当前列头为key,列值为value存到该列Map...List list.add(rowMap); } // 将该sheet名为key,List转为json后字符串

    81210

    保姆级文件导入导出功能开发{POI || EasyExcel},还看不懂,你来咬我啊

    文件导入导出功能目前主要是两家独大,一个就是ApachePOI,另一家就是阿里EasyExcel.这里两种技术我都会在下面的文章里面详细讲解. 2.POI: 2.1-POI介绍: POI全称是:...并且他们返回值都是int类型,所以这就行号解释了为什么能够直接调用这些变量了. 2.7-POI计算公式 这里我们之前test.xls文件里面为一个单元格增加了一个公式: ?...到这里我们关于POI操作基本就已经结束了,接下来我们就主要了解一下EsayExcel. 3.EsayExcel: 真的是没有对比就没有伤害,使用POI过程,感觉整个流程还是比较简单,毕竟就和我们平常写...Excel表格步骤是一样,但是真正使用了EasyExcel之后才发现,POI真的是弱爆了,并且POI我们需要使用到大量for循环,这样会严重影响我们程序性能,但是EasyExcel就已经帮我们优化好了...所以我们需要将我们之前引入POI依赖注释掉,否则会出现依赖重复. 3.2-EasyExcel数据写入操作 首先我们需要创建一个实体类.用来映射到我们Excel中将要填充对象 import com.alibaba.excel.annotation.ExcelIgnore

    1.8K30
    领券