找回密码
 立即注册

QQ登录

只需一步,快速开始

易Hr

初级会员

21

主题

87

帖子

258

积分

初级会员

积分
258
易Hr
初级会员   /  发表于:2021-5-18 20:02  /   查看:2861  /  回复:7
本帖最后由 易Hr 于 2021-5-19 09:23 编辑

4.0.5的版本还可以 4.1.0 就不行了?

7 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-5-19 09:30:29
沙发
您好,麻烦您提供能复现问题的demo,这边为您提交调研一下
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-5-19 09:54:13
板凳
Derrick.Jiao 发表于 2021-5-19 09:30
您好,麻烦您提供能复现问题的demo,这边为您提交调研一下

Workbook workbook = new Workbook();
workbook.setAutoRoundValue(true);
IRange range = workbook.getWorksheets().get(0).getRange("A1");
range.setValue(new BigDecimal("111"));
workbook.save("test.xlsx"); image.png158735655.png
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-5-19 10:21:07
地板
本帖最后由 Derrick.Jiao 于 2021-5-19 13:52 编辑
易Hr 发表于 2021-5-19 09:54
Workbook workbook = new Workbook();
workbook.setAutoRoundValue(true);
IRange range = workbook.ge ...

问题已复现,这边会提交给研发做进一步调研,此贴为您改为保留处理,有进展会在本帖更新。(DOCXLS-4136)
————————————————————————————————————————
经调研,这是产品设计。因为在4.1.0之前的版本在设置单元格值时会隐式地将java.lang.Number值转换为java.lang.Double。因此,在4.0.5的行为是不正确的。如果需要在Excel中存储BigDecimal值,则必须将它们转换为字符串或是其他格式,然后再给区域设值。
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-5-20 14:31:31
5#
Derrick.Jiao 发表于 2021-5-19 10:21
问题已复现,这边会提交给研发做进一步调研,此贴为您改为保留处理,有进展会在本帖更新。(DOCXLS-4136)
...

那问题是-- 转成字符串存储到excel 中格式不一样 。其他格式转换成什么?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-5-20 14:53:22
6#
易Hr 发表于 2021-5-20 14:31
那问题是-- 转成字符串存储到excel 中格式不一样 。其他格式转换成什么?

例如您需要int类型可以用intValue转,需要double类型可以用doubleValue转。
range.setValue(new BigDecimal("111").intValue());
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-5-20 16:36:31
7#
本帖最后由 易Hr 于 2021-5-20 16:37 编辑
Derrick.Jiao 发表于 2021-5-20 14:53
例如您需要int类型可以用intValue转,需要double类型可以用doubleValue转。
range.setValue(new BigDeci ...

好的

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-5-20 18:12:18
8#

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