java poi 读取Excel中的手机号

java

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

使用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 block

29 e.printStackTrace();

30 }

31 // 读取第一章表格内容

32 XSSFSheet sheet = xwb.getSheetAt(0);

33 // 定义 row、cell

34 XSSFRow row;

35 String cell;

36 // 循环输出表格中的内容

37 for (int i = sheet.getFirstRowNum(); i < sheet

38 .getPhysicalNumberOfRows(); i++) {

39 row = sheet.getRow(i);

40 for (int j = row.getFirstCellNum(); j < row

41 .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 block

67 e.printStackTrace();

68 }

69 // 检测代码

70 try {

71 ExcelRead er = new ExcelRead();

72 // 读取excel2007

73 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 block

82 e.printStackTrace();

83 }

84 }

85 }

86 }

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

usernameuserphone
wang13270893332
zhang15651892525
song15651236542

控制台输出:

username userphone
wang 13270893332
zhang 15651892525
song 15651236542

 

 

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

以上是 java poi 读取Excel中的手机号 的全部内容, 来源链接: utcz.com/z/392939.html

回到顶部