java poi 读取Excel中的手机号或电话号码,手机号变成1.8312345678E10格式数据的解决方法

x33g5p2x  于2021-12-06 转载在 Java  
字(1.2k)|赞(0)|评价(0)|浏览(440)

【现象】

共有2行数据
[张三1, 1.8312345678E10, 张三2, 1.8312345679E10]

【解决方法】

  1. v.add(row.getCell(1)+"");

修改为:

  1. v.add(row.getCell(1).getRawValue());

解决后输出结果为:

【完整代码】

  1. import java.io.FileInputStream;
  2. import java.io.InputStream;
  3. import java.util.Vector;
  4. import org.apache.poi.xssf.usermodel.XSSFRow;
  5. import org.apache.poi.xssf.usermodel.XSSFSheet;
  6. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  7. public class ReadExcel {
  8. public Vector<String> readExcel(String filePath) throws Exception {
  9. Vector<String> v = new Vector<String>(); // 存放读取出来的姓名和电话
  10. InputStream iStream = new FileInputStream(filePath);
  11. XSSFWorkbook workbook =new XSSFWorkbook(iStream);
  12. // sheet row column 下标都是从0开始的
  13. XSSFSheet sheet = workbook.getSheetAt(0);
  14. int rowNumber = sheet.getPhysicalNumberOfRows();
  15. System.out.println("共有" + rowNumber + "行数据");
  16. for (int i = 0; i < rowNumber; i++) {
  17. XSSFRow row = sheet.getRow(i);
  18. v.add(row.getCell(0)+"");
  19. v.add(row.getCell(1).getRawValue());
  20. }
  21. // 操作完成时,关闭对象,释放占用的内存空间
  22. if (iStream != null) {
  23. iStream.close();
  24. }
  25. return v;
  26. }
  27. /**
  28. * @param args
  29. * @throws Exception
  30. */
  31. public static void main(String[] args) throws Exception {
  32. String filePath = "D:\\1\\抽奖数据2.xlsx";
  33. ReadExcel readExcel = new ReadExcel();
  34. System.out.println(readExcel.readExcel(filePath).toString());
  35. }
  36. }

相关文章

最新文章

更多