antvis / S2

⚡️ A practical visualization library for tabular analysis.

Home Page:https://s2.antv.antgroup.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🐛使用copyWithHeader无法复制表头数据到excel中

Calmio-Y opened this issue · comments

🏷 Version

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

Sheet Type

  • PivotSheet
  • TableSheet
  • GridAnalysisSheet
  • StrategySheet
  • EditableSheet

🖋 Description

使用copyWithHeader无法复制表头数据到excel中

⌨️ Code Snapshots

import React from 'react';
import ReactDOM from 'react-dom';
import { SheetComponent } from '@antv/s2-react';

fetch('https://gw.alipayobjects.com/os/bmw-prod/2a5dbbc8-d0a7-4d02-b7c9-34f6ca63cff6.json')
.then((res) => res.json())
.then((dataCfg) => {
const s2Options = {
width: 600,
height: 480,
interaction: {
// 可复制
enableCopy: true,
copyWithHeader: true,
copyWithFormat: true,
brushSelection: {
data: true,
row: true,
col: true,
},
multiSelection: true,
},
};

const dd = {
  fields: {
    rows: ['year-period'],
    columns: ['entity'],
    values: ['dq'],
    valueInCols: true,
  },
  meta: [
    {
      field: 'year', 
    },
    {
      field: 'dq',
    },
    {
      field: 'bq',
    },
    {
      field: 'tq',
    },
    {
      field: 'mlv',
    },
    {
      field: 'tb',
    },
    {
      field: 'period',
      name: '月份',
    },
    {
      field: 'entity',
    },
    {
      field: 'year-period' 
    },
  ],
  data: [
    {
      period: '三月',
      year: '2018年',
      entity: '两片罐事业部',
      'year-period': '2018年-三月',
      bq: 32223,
      dq: 53332,
      _origin: {
        period: '3',
        year: '2018',
        entity: 'Can_BU',
        'year-period': '2018-3',
      },
    },
    {
      period: '三月',
      year: '2019年',
      entity: '两片罐事业部',
      'year-period': '2019年-三月',
      bq: 32223,
      dq: 53332,
      _origin: {
        period: '3',
        year: '2019',
        entity: 'Can_BU',
        'year-period': '2019-3',
      },
    },
    {
      period: '三月',
      year: '2023年',
      entity: '两片罐事业部',
      'year-period': '2023年-三月',
      bq: 61745.2,
      dq: 53332,
      _origin: {
        period: '3',
        year: '2023',
        entity: 'Can_BU',
        'year-period': '2023-3',
      },
    },
    {
      period: '三月',
      year: '2023年',
      entity: '宝翼制罐',
      'year-period': '2023年-三月',
      bq: 36544,
      dq: 67456,
      _origin: {
        period: '3',
        year: '2023',
        entity: 'en10301',
        'year-period': '2023-3',
      },
    },
    {
      period: '三月',
      year: '2023年',
      entity: '河北制罐',
      'year-period': '2023年-三月',
      bq: 49096,
      dq: 53332,
      _origin: {
        period: '3',
        year: '2023',
        entity: 'En10302',
        'year-period': '2023-3',
      },
    },
    {
      period: '三月',
      year: '2023年',
      entity: '成都制罐',
      'year-period': '2023年-三月',
      bq: 74394.4,
      dq: 66293.333333,
      _origin: {
        period: '3',
        year: '2023',
        entity: 'En10303',
        'year-period': '2023-3',
      },
    },
    {
      period: '三月',
      year: '2023年',
      entity: '哈尔滨制罐',
      'year-period': '2023年-三月',
      bq: 71232.1,
      dq: 97192.090909,
      _origin: {
        period: '3',
        year: '2023',
        entity: 'En10314',
        'year-period': '2023-3',
      },
    },
    {
      period: '四月',
      year: '2023年',
      entity: '两片罐事业部',
      'year-period': '2023年-四月',
      bq: 62799.3,
      dq: 67454,
      _origin: {
        period: '4',
        year: '2023',
        entity: 'Can_BU',
        'year-period': '2023-4',
      },
    },
    {
      period: '四月',
      year: '2023年',
      entity: '宝翼制罐',
      'year-period': '2023年-四月',
      bq: 37567,
      dq: 0,
      _origin: {
        period: '4',
        year: '2023',
        entity: 'en10301',
        'year-period': '2023-4',
      },
    },
    {
      period: '四月',
      year: '2023年',
      entity: '河北制罐',
      'year-period': '2023年-四月',
      bq: 50150.1,
      dq: 70442.733333,
      _origin: {
        period: '4',
        year: '2023',
        entity: 'En10302',
        'year-period': '2023-4',
      },
    },
    {
      period: '四月',
      year: '2023年',
      entity: '成都制罐',
      'year-period': '2023年-四月',
      bq: 75448.5,
      dq: 56665,
      _origin: {
        period: '4',
        year: '2023',
        entity: 'En10303',
        'year-period': '2023-4',
      },
    },
    {
      period: '四月',
      year: '2023年',
      entity: '哈尔滨制罐',
      'year-period': '2023年-四月',
      bq: 72286.2,
      dq: 100535.760606,
      _origin: {
        period: '4',
        year: '2023',
        entity: 'En10314',
        'year-period': '2023-4',
      },
    },
    {
      period: '五月',
      year: '2023年',
      entity: '两片罐事业部',
      'year-period': '2023年-五月',
      bq: 63853.4,
      dq: 23566,
      _origin: {
        period: '5',
        year: '2023',
        entity: 'Can_BU',
        'year-period': '2023-5',
      },
    },
    {
      period: '五月',
      year: '2023年',
      entity: '宝翼制罐',
      'year-period': '2023年-五月',
      bq: 38555,
      dq: -10000,
      _origin: {
        period: '5',
        year: '2023',
        entity: 'en10301',
        'year-period': '2023-5',
      },
    },
    {
      period: '五月',
      year: '2023年',
      entity: '河北制罐',
      'year-period': '2023年-五月',
      bq: 51204.2,
      dq: 73786.40303,
      _origin: {
        period: '5',
        year: '2023',
        entity: 'En10302',
        'year-period': '2023-5',
      },
    },
    {
      period: '五月',
      year: '2023年',
      entity: '成都制罐',
      'year-period': '2023年-五月',
      bq: 76502.6,
      dq: 65554,
      _origin: {
        period: '5',
        year: '2023',
        entity: 'En10303',
        'year-period': '2023-5',
      },
    },
    {
      period: '五月',
      year: '2023年',
      entity: '哈尔滨制罐',
      'year-period': '2023年-五月',
      bq: 73340.3,
      dq: 103879.430303,
      _origin: {
        period: '5',
        year: '2023',
        entity: 'En10314',
        'year-period': '2023-5',
      },
    },
    {
      period: '六月',
      year: '2023年',
      entity: '两片罐事业部',
      'year-period': '2023年-六月',
      bq: 64907.5,
      dq: 67456,
      _origin: {
        period: '6',
        year: '2023',
        entity: 'Can_BU',
        'year-period': '2023-6',
      },
    },
    {
      period: '六月',
      year: '2023年',
      entity: '宝翼制罐',
      'year-period': '2023年-六月',
      bq: 39609.1,
      dq: 22222,
      _origin: {
        period: '6',
        year: '2023',
        entity: 'en10301',
        'year-period': '2023-6',
      },
    },
    {
      period: '六月',
      year: '2023年',
      entity: '河北制罐',
      'year-period': '2023年-六月',
      bq: 52258.3,
      dq: 77130.072727,
      _origin: {
        period: '6',
        year: '2023',
        entity: 'En10302',
        'year-period': '2023-6',
      },
    },
    {
      period: '六月',
      year: '2023年',
      entity: '成都制罐',
      'year-period': '2023年-六月',
      bq: 77556.7,
      dq: 53332,
      _origin: {
        period: '6',
        year: '2023',
        entity: 'En10303',
        'year-period': '2023-6',
      },
    },
    {
      period: '六月',
      year: '2023年',
      entity: '哈尔滨制罐',
      'year-period': '2023年-六月',
      bq: -34394.4,
      dq: 107223.1,
      _origin: {
        period: '6',
        year: '2023',
        entity: 'En10314',
        'year-period': '2023-6',
      },
    },
    {
      period: '七月',
      year: '2023年',
      entity: '两片罐事业部',
      'year-period': '2023年-七月',
      bq: 65961.6,
      dq: 0,
      _origin: {
        period: '7',
        year: '2023',
        entity: 'Can_BU',
        'year-period': '2023-7',
      },
    },
    {
      period: '七月',
      year: '2023年',
      entity: '宝翼制罐',
      'year-period': '2023年-七月',
      bq: 40663.2,
      dq: 39998,
      _origin: {
        period: '7',
        year: '2023',
        entity: 'en10301',
        'year-period': '2023-7',
      },
    },
    {
      period: '七月',
      year: '2023年',
      entity: '河北制罐',
      'year-period': '2023年-七月',
      bq: 53312.4,
      dq: 80473.742424,
      _origin: {
        period: '7',
        year: '2023',
        entity: 'En10302',
        'year-period': '2023-7',
      },
    },
    {
      period: '七月',
      year: '2023年',
      entity: '成都制罐',
      'year-period': '2023年-七月',
      bq: 78610.8,
      dq: 70442.733333,
      _origin: {
        period: '7',
        year: '2023',
        entity: 'En10303',
        'year-period': '2023-7',
      },
    },
    {
      period: '七月',
      year: '2023年',
      entity: '哈尔滨制罐',
      'year-period': '2023年-七月',
      bq: 75448.5,
      dq: 61292.833333,
      _origin: {
        period: '7',
        year: '2023',
        entity: 'En10314',
        'year-period': '2023-7',
      },
    },
    {
      period: '八月',
      year: '2023年',
      entity: '两片罐事业部',
      'year-period': '2023年-八月',
      bq: 67015.7,
      dq: 0,
      _origin: {
        period: '8',
        year: '2023',
        entity: 'Can_BU',
        'year-period': '2023-8',
      },
    },
    {
      period: '八月',
      year: '2023年',
      entity: '宝翼制罐',
      'year-period': '2023年-八月',
      bq: 41717.3,
      dq: 48877,
      _origin: {
        period: '8',
        year: '2023',
        entity: 'en10301',
        'year-period': '2023-8',
      },
    },
    {
      period: '八月',
      year: '2023年',
      entity: '河北制罐',
      'year-period': '2023年-八月',
      bq: 54366.5,
      dq: 83817.412121,
      _origin: {
        period: '8',
        year: '2023',
        entity: 'En10302',
        'year-period': '2023-8',
      },
    },
    {
      period: '八月',
      year: '2023年',
      entity: '成都制罐',
      'year-period': '2023年-八月',
      bq: 79664.9,
      dq: 73786.40303,
      _origin: {
        period: '8',
        year: '2023',
        entity: 'En10303',
        'year-period': '2023-8',
      },
    },
    {
      period: '八月',
      year: '2023年',
      entity: '哈尔滨制罐',
      'year-period': '2023年-八月',
      bq: 76502.6,
      dq: 66293.333333,
      _origin: {
        period: '8',
        year: '2023',
        entity: 'En10314',
        'year-period': '2023-8',
      },
    },
    {
      period: '九月',
      year: '2023年',
      entity: '两片罐事业部',
      'year-period': '2023年-九月',
      bq: 68069.8,
      dq: 22222,
      _origin: {
        period: '9',
        year: '2023',
        entity: 'Can_BU',
        'year-period': '2023-9',
      },
    },
    {
      period: '九月',
      year: '2023年',
      entity: '宝翼制罐',
      'year-period': '2023年-九月',
      bq: 42771.4,
      dq: 49999,
      _origin: {
        period: '9',
        year: '2023',
        entity: 'en10301',
        'year-period': '2023-9',
      },
    },
    {
      period: '九月',
      year: '2023年',
      entity: '河北制罐',
      'year-period': '2023年-九月',
      bq: 55420.6,
      dq: 87161.081818,
      _origin: {
        period: '9',
        year: '2023',
        entity: 'En10302',
        'year-period': '2023-9',
      },
    },
    {
      period: '九月',
      year: '2023年',
      entity: '成都制罐',
      'year-period': '2023年-九月',
      bq: 80719,
      dq: 77130.072727,
      _origin: {
        period: '9',
        year: '2023',
        entity: 'En10303',
        'year-period': '2023-9',
      },
    },
    {
      period: '九月',
      year: '2023年',
      entity: '哈尔滨制罐',
      'year-period': '2023年-九月',
      bq: 77556.7,
      dq: 56665,
      _origin: {
        period: '9',
        year: '2023',
        entity: 'En10314',
        'year-period': '2023-9',
      },
    },
  ],
};
ReactDOM.render(
  <SheetComponent
    dataCfg={dd}
    options={s2Options}
    adaptive={{
      width: true,
      height: false,
      getContainer: () => document.getElementById('container'),
    }}
  />,
  document.getElementById('container'),
);

});

🔗 Reproduce Link

https://s2-v1.antv.antgroup.com/examples/layout/adaptive#react-adaptive
打开上面链接,并将代码替换成上面Code Snapshots中的代码

🤔 Steps to Reproduce

  1. 当前例子复制到excel中,表头无法复制成功

😊 Expected Behavior

上述例子可以正常复制表头

😅 Current Behavior

💻 System information

Environment Info
System
Browser

这个是 1.x 版本的设计缺陷, 内部使用了 "-" 来分割行列数据: "行头维值-列头维值"

const colId = cellMeta.id.split(EMPTY_PLACEHOLDER)?.[1] ?? '';

你这里的行头维值刚好带了分割线 "2023年-四月", 所以解析出来是 "2023" 和 "四月", 导致导出异常, 近期修复该问题.

目前的临时解决方案是: 格式化一下维值, 比如改成 "2023年_四月" 或者 "2023年/四月"
image

你好 @Calmio-Y,很抱歉给你带来了不好的体验, 我们会尽快排查问题并修复, 请关注后续发布日志.

Hello, @Calmio-Y, We are so sorry for the bad experience. We will troubleshoot and fix the problem as soon as possible. Please pay attention to the follow-up change logs.

🎉 This issue has been resolved in version @antv/s2-v1.55.3 🎉

The release is available on:

Your semantic-release bot 📦🚀

🎉 This issue has been resolved in version @antv/s2-v2.0.0-next.19 🎉

The release is available on:

Your semantic-release bot 📦🚀