把一个很大的数字,例如18位的身份证存放到excel中,原文中格式是“常规”,当我把他设置成“文本”的时候,就会出现科学计数,但是当我用poi的cell.getNumericCellValue()读取时,读出的值却和excel中自动生成的科学计数值不一样,导致我无论怎么转换cell.getNumericCellValue()这个值都和源文档excel中的值不一样,哪位有什么好的解决办法呢?类似以下的这些办法都已经试验过了还是不一样
java.text.DecimalFormat formatter = new java.text.DecimalFormat("########");
String str = formatter.format(cell.getNumericCellValue());
cell.getNumericCellValue() 和excel中的值不一样
答案:2 悬赏:40 手机版
解决时间 2021-03-11 21:33
- 提问者网友:做自己de王妃
- 2021-03-11 17:33
最佳答案
- 五星知识达人网友:大漠
- 2021-03-11 19:02
存文本,数字一般是不支持那么大的噜。
全部回答
- 1楼网友:duile
- 2021-03-11 20:18
楼主, cell的代表: "color" 如果单元格中的负值以不同颜色显示,则为 1,否则返回 0。所以不是您想要的,取颜色请用宏表函数get.cell
用法:
1. 宏表函数因为是早期excel函数,不能直接使用,要通过"名称"使用它
"插入"菜单-->名称-->定义-->上边输入定义名称名字color-->引用位置输入=get.cell(63,sheet1!$a$1)+rand()*0 -->然后,点右侧的"添加"按钮
2. b1输入公式=color, 此时b1的值就是a1单元格的背景颜色值。
解释:
a. get.cell(63,sheet1!$a$1) 取sheet1中a1的背景颜色值
b. rand()*0 随机取值函数rand乘以0永远等于0, 这个公式的作用,get.cell因为宏表函数,不会自动重算(即使是a1格颜色变化了)。rand()*0的作用不在于其结果,它是使整个公式随单元格改变自动重算之用。
c. get.cell的参数24是背景,如果是取a1前景字体的颜色请用24
=get.cell(24,sheet1!$a$1)+rand()*0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯