找回密码
 立即注册

QQ登录

只需一步,快速开始

芒果不盲

初级会员

24

主题

64

帖子

216

积分

初级会员

积分
216
芒果不盲
初级会员   /  发表于:2024-9-4 16:51  /   查看:808  /  回复:7
1金币

我们需要导出excel中的一部分sheet表 导出全部用 spread .export显示样式,为什么.addSheet加入spread.getSheetFromName(sheetName) 表的内容后
table和数据透视表的样式就没了 附件是文件





export async function exportSpread(nameList) {
  var spread = new GC.Spread.Sheets.Workbook();
  // await openFiles(spread, nameList);
  var expSpread = new GC.Spread.Sheets.Workbook();
  var idx = 0;
  for (let sheetName of nameList) {
    expSpread.addSheet(idx++, spread.getSheetFromName(sheetName));
  }
  expSpread.removeSheet(idx);
  expSpread.export(
    async function (blob) {
      const buf = await blob.arrayBuffer();
      const res = window.electronAPI.writeFileAsDialog(buf);
      console.log(res, "resssss");
      if (res.msg == "写入成功!") {
        message.success("导出成功!");
      } else {
        message.warn(res.msg);
      }
    },
    function (e) {
      console.log(e);
    },
    { fileType: GC.Spread.Sheets.FileType.excel, includeFormulas: false }
  );
}



1212.zip

210.09 KB, 下载次数: 60

最佳答案

查看完整内容

您好,我这边调研了一下,之所以会出现这样的问题,是因为您使用了自定义表格样式,自定义表格样式不存在于namedStyle中,所以之前提供的解决方案无法针对这种情况生效。 目前没有找到相关的解决方案可以直接将自定义表格样式添加到新的WorkBook对象中并自动应用到Table上。(如果表格没有使用自定义表格样式是可以直接生效的)

7 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-4 16:51:54
来自 7#
您好,我这边调研了一下,之所以会出现这样的问题,是因为您使用了自定义表格样式,自定义表格样式不存在于namedStyle中,所以之前提供的解决方案无法针对这种情况生效。

image.png624641112.png

目前没有找到相关的解决方案可以直接将自定义表格样式添加到新的WorkBook对象中并自动应用到Table上。(如果表格没有使用自定义表格样式是可以直接生效的)
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-4 17:09:46
2#
您好,简单来说,出现这个情况的原因是因为Sheet中的样式并不是直接存储在Sheet中,其中大部分样式是存在Sheet所在的WorkBook上的。

所以如果只移动Sheet,Sheet上的样式仍旧存储在WorkBook上,自然就出出现样式丢失的情况。

要解决这个问题,需要将样式也移动到对应的WorkBook上。

请参考:https://jscodemine.grapecity.com ... Fsrc%2Fapp.js%22%7D
回复 使用道具 举报
芒果不盲
初级会员   /  发表于:2024-9-4 18:00:12
3#
Joestar.Xu 发表于 2024-9-4 17:09
您好,简单来说,出现这个情况的原因是因为Sheet中的样式并不是直接存储在Sheet中,其中大部分样式是存在Sh ...

image.png832834777.png image.png322728575.png 我怎么获取不到他的样式

我现在这个代码怎么给样式批量填上去  spread.getNamedStyles()   expSpread.setNamedStyles()
image.png19033507.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-5 09:55:02
4#
从您提供的信息来看,您是先获取的namedStyle,再导入的文件。

image.png997099609.png

所以会出现获取不到的情况。

建议您排查一下相关问题,然后根据我上文提供的链接中的Demo来实现合并的需求。
回复 使用道具 举报
芒果不盲
初级会员   /  发表于:2024-9-5 10:08:08
5#
Joestar.Xu 发表于 2024-9-5 09:55
从您提供的信息来看,您是先获取的namedStyle,再导入的文件。

上面打印的k就是文件,文件有获取到,你试试获取一下我附件的样式
回复 使用道具 举报
芒果不盲
初级会员   /  发表于:2024-9-5 11:45:25
6#
Joestar.Xu 发表于 2024-9-5 09:55
从您提供的信息来看,您是先获取的namedStyle,再导入的文件。

之前这个样式是好的 之前版本17.0.5  我现在升级成17.1.4样式就出问题了,而且处理这个问题还有其他问题,跟0.5版本不一样
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-10-29 10:23:43
8#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部