找回密码
 立即注册

QQ登录

只需一步,快速开始

jiqimao 讲师达人认证
金牌服务用户   /  发表于:2022-7-28 11:39  /   查看:2999  /  回复:10
1金币
你好

你们的文档关于透视表的都是各类设置的内容,我想获取xlsx中透视表的以下数据要如何做呢?
1.透视表的开始位置的行索引和列索引。
image.png497114562.png
2.透视表数据源范围的开始和结束位置
3.筛选字段,列字段,行字段,值字段的项目,以及每个项目的排序和筛选列表。
image.png741170348.png

如果已有文档说明也可以给我一下位置。谢谢

最佳答案

查看完整内容

首先获取IPivotTable对象,例如:接下来获取IPivotCache对象,例如: 之后通过pivotCache获取sourceData[/backcolor] 获取的是一个range,可以通过该range找到对应数据源的sheet名称和范围 最后,通过遍历第一行获取所有的dataField

10 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-28 11:40:00
来自 9#
本帖最后由 Clark.Pan 于 2022-7-28 18:45 编辑

首先获取IPivotTable对象,例如:
  1. IPivotTable pivotTable = worksheet.getPivotTables().get(0);
复制代码
接下来获取IPivotCache对象,例如:
  1. IPivotCache pivotCache = pivotTable.getPivotCache();
复制代码
之后通过pivotCache获取sourceData
  1. IRange sourceRange = pivotCache.getSourceData();
复制代码
获取的是一个range,可以通过该range找到对应数据源的sheet名称和范围
  1. System.out.println("worksheetName:"+sourceRange.getWorksheet().getName());
  2.                 System.out.println("row:"+sourceRange.getRow());
  3.                 System.out.println("column:"+sourceRange.getColumn());
  4.                 System.out.println("rowCount:"+sourceRange.getRowCount());
  5.                 System.out.println("columnCount:"+sourceRange.getColumnCount());
复制代码
最后,通过遍历第一行获取所有的dataField
  1. IWorksheet pivotTableSourceSheet = workbook.getWorksheets().get(sourceRange.getWorksheet().getName());
  2.                 for(int i = 0; i < sourceRange.getColumnCount(); i++) {
  3.     System.out.println(pivotTableSourceSheet.getRange(sourceRange.getRow(), sourceRange.getColumn()+i).getValue());
  4.                 }
复制代码


回复 使用道具 举报
ann悬赏达人认证
初级会员   /  发表于:2022-7-28 13:46:06
2#
您好:可以参考下产品文档。https://demo.grapecity.com.cn/do ... va/demos/pivottable
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2022-7-28 14:02:04
3#
这个产品文档没有如何获取上面3个信息的说明啊,所以我才问的。
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2022-7-28 14:09:00
4#
我在发文之前,你的这份文档我就都看过了,没有我要的信息。麻烦提供一下如何获取我要的信息。
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2022-7-28 15:41:45
5#
我的问题大部分我自己调研出来了。不过有一个一直没找到,就是字段对应的列要怎么获取?
image.png325357054.png
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2022-7-28 16:36:10
6#
你好,今天可以回复吗?谢谢。只要回复最后这个问题就行了。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-28 17:18:38
7#
您好,您是要获取的是字段对应的数据源的位置信息还是字段在数据透视表中的位置信息?
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2022-7-28 17:56:13
8#
需要字段对应的数据源的列
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2022-7-29 12:27:28
10#
谢谢,确实可以获取到,这样问题就解决了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部