读取Excel文档,保持原样解析文档中的元素

刚开始从网上搞个读取Excel文档的代码
数字有格式,或者数字过大会变成科学计数法,会有问题总之
例如:表上数字13,可能读到就是13.0000000000001

还有,科学计数法可以new个bigDecimal转换回来

for (int fieldIdx = 0; fieldIdx < 100; fieldIdx++) {
				String data = "";
				Cell cell = row.getCell(fieldIdx);
				if (row.getCell(fieldIdx) != null) {
					switch (cell.getCellType()) {
					case Cell.CELL_TYPE_STRING:
						data = cell.getStringCellValue().trim();
						break;
					case Cell.CELL_TYPE_NUMERIC:
						if (DateUtil.isCellDateFormatted(cell)) {
							Date date = cell.getDateCellValue();
							BeanUtils.setProperty(excelData, "field" + (fieldIdx + 1), data);
							data = MyDateUtil.formatToDay(date);
							
						} else {
							Double dNumericCellValue = cell.getNumericCellValue();
							data = String.valueOf(dNumericCellValue);
						}
						break;
					default:
						data = "";
						break;
					}
					
				}
				BeanUtils.setProperty(excelData, "field" + (fieldIdx + 1), data);
			}

下面来修改了一下读取

for (int fieldIdx = 0; fieldIdx < 100; fieldIdx++) {
				
				Cell cell = row.getCell(fieldIdx);
				DataFormatter dataFormatter = new DataFormatter();
				String cellValue = dataFormatter.formatCellValue(cell);
				BeanUtils.setProperty(excelData, "field" + (fieldIdx + 1), cellValue);
			}

用这个DataFormatter读取cell元素

记性,网上找的东西也要自己多测测,看是否适合自己使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值