We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
由于采用了多层级结构,使用了 s2Options.hierarchyType:'tree' 配置,供用户更方便的操作 但是目前发现,在对列表折叠后进行下载,会获取不到被折叠部分的数据
这部分逻辑在官网示例即可复现
/* eslint-disable no-console */ // organize-imports-ignore import React from 'react'; import { S2DataConfig, type SpreadSheet } from '@antv/s2'; import { SheetComponent, type SheetComponentOptions } from '@antv/s2-react'; import { Export } from '@antv/s2-react-components'; import { Button, Space } from 'antd'; import '@antv/s2-react/dist/s2-react.min.css'; import '@antv/s2-react-components/dist/s2-react-components.min.css';
const s2Options: SheetComponentOptions = { width: 600, height: 480, hierarchyType: 'tree', interaction: { copy: { enable: true, }, }, };
function App({ dataCfg }) { const [sheetInstance, setSheetInstance] = React.useState();
const onMounted = (s2: SpreadSheet) => { setSheetInstance(s2); };
return ( <> <Space style={{ marginBottom: 12 }}> 自定义导出按钮 <Export sheetInstance={sheetInstance} onCopySuccess={(data) => { console.log('copy success:', data); }} onCopyError={(error) => { console.log('copy failed:', error); }} onDownloadSuccess={(data) => { console.log('download success', data); }} onDownloadError={(error) => { console.log('download failed:', error); }} /> </> ); }
fetch( 'https://gw.alipayobjects.com/os/bmw-prod/cd9814d0-6dfa-42a6-8455-5a6bd0ff93ca.json', ) .then((res) => res.json()) .then((res) => { const s2DataConfig: S2DataConfig = { fields: { rows: ['province', 'city'], columns: ['type', 'sub_type'], values: ['number'], }, meta: res.meta, data: res.data, };
reactDOMClient .createRoot(document.getElementById('container')) .render(<App dataCfg={s2DataConfig} />);
});
https://codesandbox.io/p/sandbox/objective-sound-lcwhpv
点击 浙江省 左边的加号,将浙江省折叠 点击顶部 自定义导出按钮 ,点击 下载格式化数据
希望导出的数据中含有被折叠的数据
当前下载数据
The text was updated successfully, but these errors were encountered:
你好 @DelMemory:
⚠️ 在提出问题前,请确保你已经仔细阅读👓/搜索🔍过 官方文档 和 常见问题 以及 图表示例, 并且已经搜索查阅过相关 Issues 列表 和 Discussions 列表. 当你确定自己的问题没有解决方案时,请提交 issue。 ⚠️
如果是使用问题,不知道怎么用,移步 Discussions 讨论区 并提供 有效信息 进行 提问。
这是一个开源项目, 我们也有繁忙的业务要做, 是用自己的业余时间在维护, 为爱发电, 精力有限, 所以有时候 issue 响应速度不是那么及时, 如果你遇到了问题, 或者对 Issues 和 Discussions 列表的问题感兴趣, 可以直接认领并尝试修复 (贡献指南),帮助 S2 变得更好, 而不是一味的埋怨和催促, 我们不是甲方乙方的关系.
Sorry, something went wrong.
复制导出都是所见即所得, 折叠的话出于性能考虑, 对应的节点不会渲染, 即数据结构中不含被折叠的节点, 所以导出的时候也感知不到. 如果要从底层修改的话, 影响的范围比较大.
如果要兼容这种场景, 建议是另外用一个表格实例做导出
// 在内存中声明一个新的表格实例, 用于导出 (对应的的 canvas 设为 `display:none`) const s2 = new PivotSheet(..., s2Options) await s2.render() <Export sheetInstance={s2} />
或者可以先保存下目前的折叠状态, 导出时重置, 导出后在还原, 但这种用户体验可能要差点, 页面会展开再收起
lijinke666
No branches or pull requests
🏷 S2 Version / S2 版本
💻 Sheet Type / 表格类型
🖋 Describe the bug / 问题描述
由于采用了多层级结构,使用了 s2Options.hierarchyType:'tree' 配置,供用户更方便的操作
但是目前发现,在对列表折叠后进行下载,会获取不到被折叠部分的数据
这部分逻辑在官网示例即可复现
⌨️ Code Snapshots / 代码片段
/* eslint-disable no-console */
// organize-imports-ignore
import React from 'react';
import { S2DataConfig, type SpreadSheet } from '@antv/s2';
import { SheetComponent, type SheetComponentOptions } from '@antv/s2-react';
import { Export } from '@antv/s2-react-components';
import { Button, Space } from 'antd';
import '@antv/s2-react/dist/s2-react.min.css';
import '@antv/s2-react-components/dist/s2-react-components.min.css';
const s2Options: SheetComponentOptions = {
width: 600,
height: 480,
hierarchyType: 'tree',
interaction: {
copy: {
enable: true,
},
},
};
function App({ dataCfg }) {
const [sheetInstance, setSheetInstance] = React.useState();
const onMounted = (s2: SpreadSheet) => {
setSheetInstance(s2);
};
return (
<>
<Space style={{ marginBottom: 12 }}>
自定义导出按钮
<Export
sheetInstance={sheetInstance}
onCopySuccess={(data) => {
console.log('copy success:', data);
}}
onCopyError={(error) => {
console.log('copy failed:', error);
}}
onDownloadSuccess={(data) => {
console.log('download success', data);
}}
onDownloadError={(error) => {
console.log('download failed:', error);
}}
/>
</>
);
}
fetch(
'https://gw.alipayobjects.com/os/bmw-prod/cd9814d0-6dfa-42a6-8455-5a6bd0ff93ca.json',
)
.then((res) => res.json())
.then((res) => {
const s2DataConfig: S2DataConfig = {
fields: {
rows: ['province', 'city'],
columns: ['type', 'sub_type'],
values: ['number'],
},
meta: res.meta,
data: res.data,
};
});
🔗 Reproduction link / 复现链接
https://codesandbox.io/p/sandbox/objective-sound-lcwhpv
📋 Steps to Reproduce the Bug or Issue / 重现步骤
点击 浙江省 左边的加号,将浙江省折叠
点击顶部 自定义导出按钮 ,点击 下载格式化数据
😊 Expected Behavior / 期望行为
希望导出的数据中含有被折叠的数据
😅 Current Behavior / 当前行为
当前下载数据
💻 OS / 操作系统
🌏 Browser / 浏览器
The text was updated successfully, but these errors were encountered: