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

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

【现象】

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

【解决方法】

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

修改为:

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

解决后输出结果为:

【完整代码】

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Vector;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel {
	public Vector<String> readExcel(String filePath) throws Exception {
		Vector<String> v = new Vector<String>(); // 存放读取出来的姓名和电话
		InputStream iStream = new FileInputStream(filePath);
		XSSFWorkbook workbook =new XSSFWorkbook(iStream);
		// sheet row column 下标都是从0开始的
		XSSFSheet sheet = workbook.getSheetAt(0);
		int rowNumber = sheet.getPhysicalNumberOfRows();
		System.out.println("共有" + rowNumber + "行数据");
		for (int i = 0; i < rowNumber; i++) {
			XSSFRow row = sheet.getRow(i);
			v.add(row.getCell(0)+"");
			v.add(row.getCell(1).getRawValue());
		}
		// 操作完成时,关闭对象,释放占用的内存空间
		if (iStream != null) {
			iStream.close();
		}

		return v;
	}

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		String filePath = "D:\\1\\抽奖数据2.xlsx";
		ReadExcel readExcel = new ReadExcel();
		System.out.println(readExcel.readExcel(filePath).toString());
	}
}

相关文章