POI读取Excel 各种特殊数字和类型的转换 取值带一个E

本文介绍了使用Apache POI库处理Excel时遇到的大数值读取问题,特别是针对电话号码和手机号码这类大数值的转换和取值方法,解决了数值显示带有'E'的情况。
摘要由CSDN通过智能技术生成
               

1, 对于类似电话号码或手机一类的大数值读取问题 

// 取值后会带一个E的问题 double cellValue = row.getCell(k).getNumericCellValue(); fieldValues[k] = new DecimalFormat("#").format(cellValue); 

2, 对于数值型单元的纯数值和日期型的处理 

case HSSFCell.CELL_TYPE_NUMERIC: // 数值型       if (HSSFDateUtil.isCellDateFormatted(cell)) {           //  如果是date类型则 ,获取该cell的date值           value = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString();       } else { // 纯数字           value = String.valueOf(cell.getNumericCellValue());   }

转: POI读取Excel浅谈 
先看代码,挨句解释: 
一般遍历使用两种方式,1:得到总的行数和每行的列数,然后循环。2:使用迭代 
先看第一种: 

Java代码  package com.golden.test;     import java.io.File;   import java.io.FileInputStream;     import org.apache.poi.hssf.usermodel.HSSFCell;   import org.apache.poi.hssf.usermodel.HSSFRow;   import org.apache.poi.hssf.usermodel.HSSFSheet;   import org.apache.poi.hssf.usermodel.HSSFWorkbook;     /**  *   * @author 崔素强  *   */  public class PoiReadXls2 {       public static void main(String[] args) {           File f = new File("c:\\a.xls");           try {               FileInputStream is = new FileInputStream(f);               HSSFWorkbook wbs = new HSSFWorkbook(is);               HSSFSheet childSheet = wbs.getSheetAt(0);               // System.out.println(childSheet.getPhysicalNumberOfRows());               System.out.println("有行数" + childSheet.getLastRowNum());               for (int j = 0; j < childSheet.getLastRowNum(); j++) {                   HSSFRow row = childSheet.getRow(j);                   // System.out.println(row.getPhysicalNumberOfCells());                   // System.out.println("有列数" + row.getLastCellNum());                   if (null != row) {                       for (int k = 0; k < row.getLastCellNum(); k++) {                           HSSFCell cell = row.getCell(k);                           if (null != cell) {                               switch (cell.getCellType()) {                               case HSSFCell.CELL_TYPE_NUMERIC: // 数字                                   System.out.print(cell.getNumericCellValue()                                           + "   ");                                   break;                               case HSSFCell.CELL_TYPE_STRING: // 字符串                                   System.out.print(cell.getStringCellValue()                                           + "   ");                                   break;                               case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean                                   System.out.println(cell.getBooleanCellValue()                                           + "   ");                                   break;                               case HSSFCell.CELL_TYPE_FORMULA: // 公式          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值