找回密码
 立即注册

QQ登录

只需一步,快速开始

Jun2005

注册会员

17

主题

57

帖子

168

积分

注册会员

积分
168
Jun2005
注册会员   /  发表于:2022-7-1 11:37  /   查看:1907  /  回复:7
本帖最后由 Jun2005 于 2022-9-27 17:33 编辑

我复制了公式和样式后
EnumSet<PasteType> vs = EnumSet.of(PasteType.Values, PasteType.Formulas, PasteType.Formats,
        PasteType.RowHeights, PasteType.ColumnWidths, PasteType.NumberFormats);


PasteOption pn =   new PasteOption();
pasteOption.setPasteType(values);
curRow.copy(worksheet.getRange(range),pasteOption);
执行以下操作
IRange range = worksheet.getRange(raginName);
range.setValue(objectArray); 是不是会把excel原来的公式覆盖,造成公式丢失


7 个回复

倒序浏览
ann悬赏达人认证
初级会员   /  发表于:2022-7-1 11:52:39
沙发
您好:辛苦提供下可复现问题的demo,我们调试看看呢
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-7-1 17:51:51
板凳
你好,如果单元格有值或者有公式,通过setValue会将原来的内容覆盖。
回复 使用道具 举报
Jun2005
注册会员   /  发表于:2022-7-2 10:11:58
地板
Derrick.Jiao 发表于 2022-7-1 17:51
你好,如果单元格有值或者有公式,通过setValue会将原来的内容覆盖。

导出的时候有什么办法 不把原来模板公式去覆盖??
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-7-4 13:43:54
5#
Jun2005 发表于 2022-7-2 10:11
导出的时候有什么办法 不把原来模板公式去覆盖??

导出的时候我们只会将表单的设置的内容原样导出不会去修改或者覆盖单元格的值或者公式,如果是导出之后与原来设置的不一样,请提供对应的demo,这边来做进一步调研。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-2 10:37:17
6#
请问楼主问题解决了吗?如果已解决,欢迎分享解决方案哦。
如果仍未解决,请提供一个demo,这边进一步调研下原因。
回复 使用道具 举报
Jun2005
注册会员   /  发表于:2022-9-27 11:24:26
7#
Richard.Ma 发表于 2022-8-2 10:37
请问楼主问题解决了吗?如果已解决,欢迎分享解决方案哦。
如果仍未解决,请提供一个demo,这边进一步调研 ...

还没解决。随便一个sheet执行
IRange range = worksheet.getRange(raginName);
range.setValue(objectArray);

objectArray 是一个标准二维数组

这样会导致原来表格所有的公式都会被 值 覆盖了。

现在我解决方案是。setvalue之前把样式和公式 先记录下来、
等setvalue后再 批量设置列公式。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-27 18:19:45
8#
如之前回复所示,如果单元格是有值或者公式的,那么您再setValue就会将原来的值或公式覆盖。
image.png583945006.png
从描述中来看,您是想在导入文件时,将修改value后的数据进行导出吗?
有个思路可以参考下,可以将当前workbook复制为一个新的workbook,对新的workbook修改value并做后续导出,这样原来的workbook就不受影响了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部