博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java poi 读取Excel中的手机号
阅读量:5860 次
发布时间:2019-06-19

本文共 3265 字,大约阅读时间需要 10 分钟。

使用poi读取Excel手机号,通常会把它认为成double类型,然后使用科学计数法显示1.32....E10什么的,很苦恼。刚刚查了官方文档,简单的很,代码如下:

使用DataFormatter格式化一下即可。

1 package cn.gx.test; 2  3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.util.logging.Level; 9 import java.util.logging.Logger;10 11 import org.apache.poi.ss.usermodel.DataFormatter;12 import org.apache.poi.xssf.usermodel.XSSFRow;13 import org.apache.poi.xssf.usermodel.XSSFSheet;14 import org.apache.poi.xssf.usermodel.XSSFWorkbook;15 16 public class ExcelRead {17 18     public ExcelRead() {19 20     }21 22     public void testPoiExcel2007(InputStream ios) {23         // 构造 XSSFWorkbook 对象,strPath 传入文件路径24         XSSFWorkbook xwb = null;25         try {26             xwb = new XSSFWorkbook(ios);27         } catch (IOException e) {28             // TODO Auto-generated catch block29             e.printStackTrace();30         }31         // 读取第一章表格内容32         XSSFSheet sheet = xwb.getSheetAt(0);33         // 定义 row、cell34         XSSFRow row;35         String cell;36         // 循环输出表格中的内容37         for (int i = sheet.getFirstRowNum(); i < sheet38                 .getPhysicalNumberOfRows(); i++) {39             row = sheet.getRow(i);40             for (int j = row.getFirstCellNum(); j < row41                     .getPhysicalNumberOfCells(); j++) {42                 // 通过 row.getCell(j).toString() 获取单元格内容,43                 int cellType = row.getCell(j).getCellType();44                 // System.out.println("cellType:"+cellType);45                 if (cellType == 0) {46                     DataFormatter dataFormatter = new DataFormatter();47                     dataFormatter.addFormat("###########", null);48                     cell = dataFormatter.formatCellValue(row.getCell(j));49                 } else {50 51                     cell = row.getCell(j).toString();52                 }53                 System.out.print(cell + "\t");54             }55             System.out.println("");56         }57     }58 59     public static void main(String[] args) {60         String fileName = "D:\\user.xlsx";61         File file = new File(fileName);62         InputStream fileInpuStream = null;63         try {64             fileInpuStream = new FileInputStream(file);65         } catch (FileNotFoundException e) {66             // TODO Auto-generated catch block67             e.printStackTrace();68         }69         // 检测代码70         try {71             ExcelRead er = new ExcelRead();72             // 读取excel200773             er.testPoiExcel2007(fileInpuStream);74         } catch (Exception ex) {75             Logger.getLogger(ExcelRead.class.getName()).log(Level.SEVERE, null,76                     ex);77         }finally{78             try {79                 fileInpuStream.close();80             } catch (IOException e) {81                 // TODO Auto-generated catch block82                 e.printStackTrace();83             }84         }85     }86 }

表格如下:两列,第一列姓名,第二列手机号码

username userphone
wang 13270893332
zhang 15651892525
song 15651236542

控制台输出:

username userphone

wang 13270893332
zhang 15651892525
song 15651236542

 

 

有些东西不是你不会,而是你不知道还有其他解决方案

转载于:https://www.cnblogs.com/lucky2u/p/3914977.html

你可能感兴趣的文章
遭遇Javascript跨站访问的问题(400错误), 还遇到个大写I小写i的错误, 调得我都吐了...
查看>>
通用 Java 文件上传和下载组件的设计与实现
查看>>
Encode query with Python
查看>>
XCode ios iphone 变态的资源管理
查看>>
JS无缝滚动代码
查看>>
数据流图懂不懂?
查看>>
ubuntu下IP、DNS配置
查看>>
ORA-01033: ORACLE initialization or shutdown in progress
查看>>
我的毕业设计——无线控制平台
查看>>
[OpenGL ES 06]使用VBO:顶点缓存
查看>>
PHP开发不能违背的安全规则 过滤用户输入
查看>>
oracle主机名修改
查看>>
【原创】MessageBox设置默认按钮
查看>>
方法nullJavascript中创建对象的几种方法
查看>>
研究中
查看>>
对SQLSERVER数据库事务日志的疑问
查看>>
(ios实战)实现类似于android 的toast控件
查看>>
oracle系统包——dbms_transaction用法
查看>>
Wooden Sticks
查看>>
(六)观察者模式详解(包含观察者模式JDK的漏洞以及事件驱动模型)
查看>>