java读取excel, excel中有一列是特殊格式-邮政编码,是0开头的六位数字,读取上来,转化成string,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java读取excel, excel中有一列是特殊格式-邮政编码,是0开头的六位数字,读取上来,转化成string,相关的知识,希望对你有一定的参考价值。
开头的0被去掉了,求如何写代码:switch (cell.getCellType()) case HSSFCell.CELL_TYPE_NUMERIC: // 数字 cellValue = cell.getNumericCellValue() + ""; break; case HSSFCell.CELL_TYPE_STRING: // 字符串 cellValue = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean cellValue = cell.getBooleanCellValue() + ""; break; case HSSFCell.CELL_TYPE_FORMULA: // 公式 cellValue = cell.getCellFormula() + ""; break; case HSSFCell.CELL_TYPE_BLANK: // 空值 cellValue = ""; break; case HSSFCell.CELL_TYPE_ERROR: // 故障 cellValue = "非法字符"; break; default: cellValue = "未知类型"; break;
CellType 类型 值
CELL_TYPE_NUMERIC 数值型 0
CELL_TYPE_STRING 字符串型 1
CELL_TYPE_FORMULA 公式型 2
CELL_TYPE_BLANK 空值 3
CELL_TYPE_BOOLEAN 布尔型 4
CELL_TYPE_ERROR 错误 5
设置成邮政编码后,实际上还是数字
需要你人为处理下邮政的数据,比如把原来邮政的改成字符串:
再读取时,应该不会变
追问因为不能对数据源进行处理,所以只好根据字符串长度+"0"
参考技术A 怎么都是三位,不可能前面有三个0吧...追问对excel中,格式是特殊-邮政编码,六位数,000001--999999,读上来却是1--999999
追答对excel不熟悉,试了下excel默认对数字字符格式会自动去掉前面的0,因此有两种办法处理:
1.如果Excel数据源格式可以变,将其变成"文本"格式;
2.程序中将取出来的字符串(如果是整数,将其转成字符串String.valueOf(intValue)),根据位数固定为6的规律,如果字符串长度小于6,则在前面不上所缺个数的'0'
代码就不写了,自己写或者网上找
,我就是跟第二种的做法一样
本回答被提问者采纳在EXCEL中有一列是IP地址,如何按IP地址的最后一位排序??(前3位都一样)
IP地址格式为:192.168.1.XXX
直接排序后效果为:
192.168.1.1
192.168.1.10
192.168.1.11
.....
192.168.1.2
192.168.1.20
.....
希望效果是:
192.168.1.1
192.168.1.2
192.168.1.3
.....
这样要在哪里设置下??
在b1输入
=mid(a1,11,3)
向下托
然后拍b列
a列跟着排了 参考技术A 一楼的公式出来的是文本 所以不行
数据在a列
在b1输入
=mid(a1,11,3)*1
向下拉 然后复制成数值以后对B列排序 ,a列跟着排了 参考技术B 增加辅助列"后2位"列(假设在B列),
假设第一行数据在表格第二行,在单元格B2中输入公式 =rihgt(a2,2),再向下拖复制公式.
最后按B列排序,升充即可. 参考技术C 对,必须加辅助列。文本就只能排成你那样了。必须转为数值型。
以上是关于java读取excel, excel中有一列是特殊格式-邮政编码,是0开头的六位数字,读取上来,转化成string,的主要内容,如果未能解决你的问题,请参考以下文章
在EXCEL中有一列是IP地址,如何按IP地址的最后一位排序??(前3位都一样)
在EXCEL中有一列是IP地址,如何按IP地址的最后一位排序??(前3位都一样)
excel中,有一列是公司名称,如果我在其他单元格里面输入公司的简称立即就可以显示公司全称,怎么实现?
在EXCEL中如何将其中一个表中的数据插入另一个表中,两表中其有一有列是相同的?怎么把两个表合为一个?