找回密码
 立即注册

QQ登录

只需一步,快速开始

易Hr

初级会员

21

主题

87

帖子

258

积分

初级会员

积分
258
易Hr
初级会员   /  发表于:2021-6-8 17:51  /   查看:2739  /  回复:9
我将附件中的excel中 第二个sheet页删除
然后将第一个sheet页中的AQ2的公式赋值给AQ3 报错

image.png202181090.png



代码如下
workbook.open("F:\\testA.xlsx");
// 即便我加入以下2行代码也会报错
//workbook.setEnableCalculation(false);
//workbook.dirty();
IWorksheet worksheet = workbook.getWorksheets().get(0);
workbook.getWorksheets().get(1).delete();
IRange range =worksheet.getRange("AQ2");
worksheet.getRange("AQ3").setFormula(range.getFormula());
image.png138644408.png
image.png960965576.png

testA.rar

18.91 KB, 阅读权限: 100, 下载次数: 1

9 个回复

倒序浏览
易Hr
初级会员   /  发表于:2021-6-9 09:14:33
推荐
Derrick.Jiao 发表于 2021-6-8 18:24
您好,这边测试如果是直接赋值的给新的单元格而不进行删除表单操作的话是可以正常设置的,请问您删除表单再 ...

其实不是要删除 。删除只是模拟业务需求。
本来是一开始用户导入的就是第一个表的内容。
第二个表的内容并未导入,导致回填公式的时候报错
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-8 18:24:03
推荐
您好,这边测试如果是直接赋值的给新的单元格而不进行删除表单操作的话是可以正常设置的,请问您删除表单再赋值具体需求是怎样的呢?麻烦您详细描述一下,这边为您进行调研。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-9 09:31:08
地板
本帖最后由 Derrick.Jiao 于 2021-6-9 14:21 编辑
易Hr 发表于 2021-6-9 09:14
其实不是要删除 。删除只是模拟业务需求。
本来是一开始用户导入的就是第一个表的内容。
第二个表的内 ...

了解了,这边问题已复现,会提交做进一步调研,此贴为您改为保留处理,有进展会在本帖更新(DOCXLS-4265)

——————————————————————————————————————
经调研,这个是属于产品设计,因为第一个表单的公式依赖第二张表单。当删除第二张表单后,复制AQ2的公式然后粘贴到AQ3,excel也会抛出错误。
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-6-15 16:38:49
5#
Derrick.Jiao 发表于 2021-6-9 09:31
了解了,这边问题已复现,会提交做进一步调研,此贴为您改为保留处理,有进展会在本帖更新(DOCXLS-4265 ...

excel 报错没有问题。
但是不是所有的公式赋值都会报错
比如我sum(sheet2:A1:A2)  sum求和的公式 即便sheet2 不存在设置进去虽然计算的值会不正确。但是不会抛异常,不会导致程序终止运行。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-15 17:27:17
6#
易Hr 发表于 2021-6-15 16:38
excel 报错没有问题。
但是不是所有的公式赋值都会报错
比如我sum(sheet2:A1:A2)  sum求和的公式 即便s ...

如果是您描述的这种情况是不会报错的,例如您在您的表单上设置这个“=SUM(Sheet2!A1:A2)”是可以设置的,及时没有sheet2这张表。同样的,Excel也是可以。但是像您开始提出的,删除再复制,这种无论是Excel还是GcExcel两者都会报错,这是设计上都是一致的。因此,报错这个行为,属于产品设计。
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-6-16 09:45:32
7#
Derrick.Jiao 发表于 2021-6-15 17:27
如果是您描述的这种情况是不会报错的,例如您在您的表单上设置这个“=SUM(Sheet2!A1:A2)”是可以设置的, ...

那是否有验证公式的有效性的方法? 要不然这种错误 无法预估啊。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-16 10:26:58
8#
易Hr 发表于 2021-6-16 09:45
那是否有验证公式的有效性的方法? 要不然这种错误 无法预估啊。

这种情况下,GcExcel没有对应的方法,只能您去写catch代码。
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-6-16 17:14:22
9#
Derrick.Jiao 发表于 2021-6-16 10:26
这种情况下,GcExcel没有对应的方法,只能您去写catch代码。

好的-
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-16 17:51:46
10#

有新问题欢迎开新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部