java poi 讀取Excel中的手機號


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

表格如下:兩列,第一列姓名,第二列手機號碼

username userphone
wang 13270893332
zhang 15651892525
song 15651236542

控制台輸出:

username userphone
wang 13270893332
zhang 15651892525
song 15651236542

 

 

有些東西不是你不會,而是你不知道還有其他解決方案


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM