起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5534|回复: 12

[结贴] exportBar 组件 导出的excel,保留两位小数无效?

[复制链接]

83

主题

247

帖子

535

积分

高级会员

Rank: 4

积分
535
QQ
发表于 2017-3-29 14:45:39 | 显示全部楼层 |阅读模式
自己写的action已经用round(,)约束了小数位数,在数据库执行sql 也是现实两位小数,
在excel中写设置了数值类型,保留两位小数。
可是输出的格式中,有若干行的小数是多位循环类型的。错误见截图:

这两天做的统计导出遇到问题实在太多,向版主表示一下歉意

excel 错误截图

excel 错误截图

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2017-3-29 15:08:33 | 显示全部楼层
把table中的内容打出来看看正确吗?
http://bbs.wex5.com/forum.php?mo ... 6&pid=165049439


excel中的格式就是excel单元格中设置的,没有其他的地方控制
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

83

主题

247

帖子

535

积分

高级会员

Rank: 4

积分
535
QQ
 楼主| 发表于 2017-3-29 15:22:41 | 显示全部楼层
jishuang 发表于 2017-3-29 15:08
把table中的内容打出来看看正确吗?
http://bbs.wex5.com/forum.php?mod=redirect&goto=findpost&ptid=4096 ...

table内容打印出来的是[CDATA[1.6099999999999999]],应该这里有问题  

我的页面显示的是两位小数、数据库sql执行也是两位小数,请问这个问题应该怎么修改?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2017-3-29 16:49:42 | 显示全部楼层
table打出来的不对,那就是sql查的返回的就不对,可以遍历tabel中的数据用java处理小数,或者到网上查找sql中的是否有其他的函数可以控制
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

83

主题

247

帖子

535

积分

高级会员

Rank: 4

积分
535
QQ
 楼主| 发表于 2017-3-29 16:58:56 | 显示全部楼层
本帖最后由 无可奈何花落去 于 2017-3-29 17:02 编辑
jishuang 发表于 2017-3-29 16:49
table打出来的不对,那就是sql查的返回的就不对,可以遍历tabel中的数据用java处理小数,或者到网上查找sql ...

我把sql 复制到 sqlserver里查询都是两位小数,关于面积的列都用round函数四舍五入了。
数据库我截了一张图片,有问题列是HTZMJ,里面的部分数据如图所示,前后检查了几遍,在数据库执行时,所有行的HTZMJ都是两位小数.
我在论坛找到了一个14年的帖子,感觉和我的问题类似,官方给出的原因是:出错的字段类型是float,会有精度误差,应该改为Decimal。
帖子链接如下: http://bbs.wex5.com/forum.php?mo ... 451&highlight=excel小数


sql查询的数据量太大了,如果在java里面遍历,功能打开时间过长,浏览器会等待崩溃的,出问题的字段是国家定的标准,应该不能随意更改数据类型。
数据库截图:



222222.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2017-3-29 17:23:27 | 显示全部楼层
可以用java中jdbc标准的方式执行sql看看返回的数据正确吗
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

83

主题

247

帖子

535

积分

高级会员

Rank: 4

积分
535
QQ
 楼主| 发表于 2017-3-30 09:36:06 | 显示全部楼层
本帖最后由 无可奈何花落去 于 2017-3-30 09:59 编辑
jishuang 发表于 2017-3-29 17:23
可以用java中jdbc标准的方式执行sql看看返回的数据正确吗

使用JDBC连接数据库时,数据是正常的。都是两位小数 。
CBHTBM:131102002024000008J  HTZMJ:1.61
CBHTBM:131102002024000008J  HTZMJ:1.61
下面这个图片是同一条数据,使用X5的导出excel功能,小数就变成多位了。

123123.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2017-3-30 10:09:25 | 显示全部楼层
现在是显示,跟导出无关,那用jdbc的方式去执行sql,把ResultSet转换为table看看
如果不行,那就只能遍历table去设置了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

83

主题

247

帖子

535

积分

高级会员

Rank: 4

积分
535
QQ
 楼主| 发表于 2017-3-30 10:11:18 | 显示全部楼层
本帖最后由 无可奈何花落去 于 2017-3-30 10:28 编辑
jishuang 发表于 2017-3-30 10:09
现在是显示,跟导出无关,那用jdbc的方式去执行sql,把ResultSet转换为table看看
如果不行,那就只能遍历ta ...

上面我截的图就是导出excel的截图,不是浏览器显示的页面截图。现在的问题总结起来就是:使用sql.select() 查询到的数据,sql在数据库执行是两位小数,浏览器界面显示也是两位小数,只有在导出时小数尾数变多。
使用JDBC查询同样的sql语句时,action中返回的结果还是两位小数。

你的意思是,不用sql.select 进行查询,使用jdbc代替它查询,然后把resultset 转成table返回给UI界面么?
请问resultset转 table 应该怎么写?



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36107
发表于 2017-3-30 11:02:53 | 显示全部楼层
如果是显示没问题导出的excel有问题,那目前没有好的处理方案
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-2-24 00:40 , Processed in 0.055285 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表