Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🤔 rowCell和colCell中对数据String()处理后导致拿不到原始值 #2766

Closed
5 tasks
liqiuqiui opened this issue Jun 5, 2024 · 8 comments · Fixed by #2810
Closed
5 tasks

🤔 rowCell和colCell中对数据String()处理后导致拿不到原始值 #2766

liqiuqiui opened this issue Jun 5, 2024 · 8 comments · Fixed by #2810
Assignees
Labels
⚡ enhancement 功能增强 ❔question 疑问/使用问题

Comments

@liqiuqiui
Copy link

liqiuqiui commented Jun 5, 2024

🏷 Version

Package Version
@antv/s2
@antv/s2-react
@antv/s2-vue

Sheet Type

  • PivotSheet
  • TableSheet
  • GridAnalysisSheet
  • StrategySheet
  • EditableSheet

🖋 Description

rowCell和colCell中对数据String()处理后导致拿不到null的原始值,是否考虑增加originLabel和originValue的方式保留未经处理的原始值,以供开发者自行处理一些特殊的情况?
image

具体代码就是这一行 https://github.com/antvis/S2/blob/master/packages/s2-core/src/utils/dataset/pivot-data-set.ts#L66

🔗 Reproduce Link

😊 Expected Behavior

😅 Current Behavior

@liqiuqiui liqiuqiui added the ❔question 疑问/使用问题 label Jun 5, 2024
@lijinke666 lijinke666 assigned lijinke666 and wjgogogo and unassigned lijinke666 Jun 6, 2024
@lijinke666
Copy link
Member

麻烦 @wjgogogo 看看

@KzqKzq
Copy link

KzqKzq commented Jul 4, 2024

@lijinke666 请问下这个问题有计划修复吗,在使用的时候我也有这个获取colCell原始值的需求

@lijinke666
Copy link
Member

是否考虑增加originLabel和originValue的方式保留未经处理的原始值,以供开发者自行处理一些特殊的情况?

近期看一下, 有一定改造成本, 如可行会在 2.x 中支持

@lijinke666 lijinke666 added the ⚡ enhancement 功能增强 label Jul 4, 2024
Copy link
Contributor

github-actions bot commented Jul 4, 2024

你好 @liqiuqiui,感谢你的建议, 我们会及时评估和排期, 谢谢!
当然, 如果能贡献 PR 帮助我们改进, 不胜感激!

Hello, @liqiuqiui, thanks for your advice. We will evaluate and schedule in time. Thank you!
you could implement it by yourself through the customization capabilities provided by S2. Thanks so much for your understanding.

@lijinke666
Copy link
Member

lijinke666 commented Jul 4, 2024

@lijinke666 请问下这个问题有计划修复吗,在使用的时候我也有这个获取colCell原始值的需求

这个属于能力增强了, 不是 修复, 你是什么场景? 也是维值为 null ? 请详细描述你的诉求

@lijinke666 lijinke666 assigned lijinke666 and unassigned wjgogogo Jul 4, 2024
@KzqKzq
Copy link

KzqKzq commented Jul 4, 2024

@lijinke666 请问下这个问题有计划修复吗,在使用的时候我也有这个获取colCell原始值的需求

这个属于能力增强了, 不是 修复, 你是什么场景? 也是维值为 null ? 请详细描述你的诉求

目前就是对维度定义了一些格式化函数,然后这个函数里面包含了对维度为null值的一些处理,目前就是导出成的时候我需要将维度的null经过格式化处理之后的结果导出。
比如说下面这个表
image
通过
const data = await asyncGetAllPlainData({ sheetInstance: s2, split: '\t', formatOptions: true });
导出的结果为
image
我希望的结果是上面的日期为空的维度值可以导出成我在formatter自定义的null为空值的结果,我的一个实现思路是通过这个colCell的单元格对应的原始值来判断,如果是null就在对应维度的formatter函数中进入自定义的null为空值的处理逻辑。但是由于维度值在s2中直接被转成字符串,就没有办法在formatter中进行正确的维值为null的格式处理再进行导出。
或者说,针对导出的这个问题,能否支持在asyncGetAllPlainData 中的formatOptions 加入一个配置开关类似
export declare type FormatOptions = boolean | { formatHeader?: boolean; formatData?: boolean; placeholder?:boolean; };
支持占位符的导出

@lijinke666
Copy link
Member

lijinke666 commented Jul 4, 2024

@lijinke666 请问下这个问题有计划修复吗,在使用的时候我也有这个获取colCell原始值的需求

这个属于能力增强了, 不是 修复, 你是什么场景? 也是维值为 null ? 请详细描述你的诉求

目前就是对维度定义了一些格式化函数,然后这个函数里面包含了对维度为null值的一些处理,目前就是导出成的时候我需要将维度的null经过格式化处理之后的结果导出。 比如说下面这个表 image 通过 const data = await asyncGetAllPlainData({ sheetInstance: s2, split: '\t', formatOptions: true }); 导出的结果为 image 我希望的结果是上面的日期为空的维度值可以导出成我在formatter自定义的null为空值的结果,我的一个实现思路是通过这个colCell的单元格对应的原始值来判断,如果是null就在对应维度的formatter函数中进入自定义的null为空值的处理逻辑。但是由于维度值在s2中直接被转成字符串,就没有办法在formatter中进行正确的维值为null的格式处理再进行导出。 或者说,针对导出的这个问题,能否支持在asyncGetAllPlainData 中的formatOptions 加入一个配置开关类似 export declare type FormatOptions = boolean | { formatHeader?: boolean; formatData?: boolean; placeholder?:boolean; }; 支持占位符的导出

明白了, 这个请另外提个 issue (带上复现 demo), 你的场景和该 issue 没关系, 不要混在一起了.

看起来你配置了 S2DataConfig.meta 的格式化, 表格渲染的时候把 null 转成了 -, 但是导出的时候 formatOptions: true 预期应该是使用格式化后的值 (-), 和表格长一样, 但是还是导出的还是 null, 初步看起来是 BUG, 需要结合你的可复现 demo 排查一下.

@KzqKzq
Copy link

KzqKzq commented Jul 4, 2024

@lijinke666 请问下这个问题有计划修复吗,在使用的时候我也有这个获取colCell原始值的需求

这个属于能力增强了, 不是 修复, 你是什么场景? 也是维值为 null ? 请详细描述你的诉求

目前就是对维度定义了一些格式化函数,然后这个函数里面包含了对维度为null值的一些处理,目前就是导出成的时候我需要将维度的null经过格式化处理之后的结果导出。 比如说下面这个表 image 通过 const data = await asyncGetAllPlainData({ sheetInstance: s2, split: '\t', formatOptions: true }); 导出的结果为 image 我希望的结果是上面的日期为空的维度值可以导出成我在formatter自定义的null为空值的结果,我的一个实现思路是通过这个colCell的单元格对应的原始值来判断,如果是null就在对应维度的formatter函数中进入自定义的null为空值的处理逻辑。但是由于维度值在s2中直接被转成字符串,就没有办法在formatter中进行正确的维值为null的格式处理再进行导出。 或者说,针对导出的这个问题,能否支持在asyncGetAllPlainData 中的formatOptions 加入一个配置开关类似 export declare type FormatOptions = boolean | { formatHeader?: boolean; formatData?: boolean; placeholder?:boolean; }; 支持占位符的导出

明白了, 这个请另外提个 issue (带上复现 demo), 你的场景和该 issue 没关系, 不要混在一起了.

看起来你配置了 S2DataConfig.meta 的格式化, 表格渲染的时候把 null 转成了 -, 但是导出的时候 formatOptions: true 预期应该是使用格式化后的值 (-), 和表格长一样, 但是还是导出的还是 null, 初步看起来是 BUG, 需要结合你的可复现 demo 排查一下.

谢谢,我重新提了一个issue 来说明这个问题https://github.com/antvis/S2/issues/2808

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚡ enhancement 功能增强 ❔question 疑问/使用问题
Projects
None yet
4 participants