请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

zjk

中级会员

82

主题

307

帖子

815

积分

中级会员

积分
815
zjk
中级会员   /  发表于:2025-1-15 11:04  /   查看:82  /  回复:9
1金币
设计的报表有合并单元格,但是导出excel却没有合并,麻烦帮忙看下。

image.png905888366.png

最佳答案

查看完整内容

导入您提供的ssjson文件后,发现导出后不再合并的合并单元格位于Table内,如下图所示: SpreadJS允许Table中存在合并单元格,而Microsoft Excel不允许Table中合并单元格。 您可以不使用Table,就在sheet中合并单元格,也可以将SpreadJS中的Table转换为普通区域,通过UI的设置方式如下图所示: 如果需要通过代码设置,那么可以使用命令TableToRange,调用代码如下所示: 请参考如下论坛博客了解详情: https://g ...

9 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2025-1-15 11:04:11
来自 5#
本帖最后由 Wilson.Zhang 于 2025-1-16 11:34 编辑
zjk 发表于 2025-1-16 10:25
麻烦了。。。。。。。。。。

导入您提供的ssjson文件后,发现导出后不再合并的合并单元格位于Table内,如下图所示:
Table合并单元格.png785914916.png

SpreadJS允许Table中存在合并单元格,而Microsoft Excel不允许Table中合并单元格。

您可以不使用Table,就在sheet中合并单元格,也可以将SpreadJS中的Table转换为普通区域,通过UI的设置方式如下图所示:
Table转区域.png178011168.png

如果需要通过代码设置,那么可以使用命令TableToRange,调用代码如下所示:
  1. spread.commandManager().execute({
  2.     cmd: "tableToRange",
  3.     sheetName: 'Sheet1',
  4.     tableName: 'Table1'
  5. });
复制代码

请参考如下论坛博客了解详情:
https://gcdn.grapecity.com.cn/showtopic-224312.html
回复 使用道具 举报
zjk
中级会员   /  发表于:2025-1-15 13:41:31
2#
没人了吗.....
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-1-15 17:52:23
3#
您好!请教下您在SpreadJS中设置的合并单元格是否为自动合并单元格?如果是自动合并单元格,15版本的导出文件功能不支持设置包含自动合并单元格,16版本的导出功能支持在导出时设置是否包含自动合并单元格。

如果不是自动合并单元格,需要您提供一个能够复现问题现象的ssjson文件,我测试分析下。
回复 使用道具 举报
zjk
中级会员   /  发表于:2025-1-16 10:25:05
4#
Wilson.Zhang 发表于 2025-1-15 17:52
您好!请教下您在SpreadJS中设置的合并单元格是否为自动合并单元格?如果是自动合并单元格,15版本的导出文 ...

麻烦了。。。。。。。。。。

test2.rar

5.33 KB, 下载次数: 1

回复 使用道具 举报
zjk
中级会员   /  发表于:2025-1-16 14:37:28
6#
Wilson.Zhang 发表于 2025-1-16 11:33
导入您提供的ssjson文件后,发现导出后不再合并的合并单元格位于Table内,如下图所示:

这样操作是否会影响我绑定数据 list类型的展示?
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-1-16 17:34:29
7#
zjk 发表于 2025-1-16 14:37
这样操作是否会影响我绑定数据 list类型的展示?

您提到的list指的是下拉列表吗?如果您的表结构中设置了下拉列表,而且需要通过数据绑定的方式设置下拉列表所在单元格,当然支持这样的场景。

如此来看的话,猜测您在sheet中设置Table是为了使用Table级别的数据绑定吧?可以先通过Table绑定数据,然后在导出前将Table转换为区域,您尝试下看能不能满足您的需求。
回复 使用道具 举报
zjk
中级会员   /  发表于:2025-1-20 08:47:55
8#
Wilson.Zhang 发表于 2025-1-16 17:34
您提到的list指的是下拉列表吗?如果您的表结构中设置了下拉列表,而且需要通过数据绑定的方式设置下拉列 ...

是的,使用table级别的数据绑定。 导出前转换为区域 ,是这段代码吗?spread.commandManager().execute({
    cmd: "tableToRange",
    sheetName: 'Sheet1',
    tableName: 'Table1'
});
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-1-20 09:27:05
9#
zjk 发表于 2025-1-20 08:47
是的,使用table级别的数据绑定。 导出前转换为区域 ,是这段代码吗?spread.commandManager().execute({ ...

是的,使用命令将Table转换为普通区域,这样即可在导出后的xlsx文件中保留合并单元格,同时可以在转换前通过Table级别数据绑定完成数据填报。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:昨天 14:35
10#
您好!由于您较长时间未回复,且从跟帖回复中了解到问题已得到有效解答,那就结帖了。如有新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部