首先读取excel先将poi包下的jar导入
下面直接写代码了
public class ExcelUtil { /** * 选择某个文件判断其后缀名是否是.xls 或者xlsx,如果是读取其信息 * @throws IOException */ public static List<List<String>> readExcel(File file) { InputStream is; HSSFWorkbook workBook; XSSFWorkbook xssfWorkBook; DecimalFormat format = new DecimalFormat("#");//格式化excel数字类型 List<List<String>> sheetList = new ArrayList<List<String>>(); try { is = new FileInputStream(file); //读取文件 if(file.getName().endsWith(".xls")) { workBook = new HSSFWorkbook(is); //workBoo //遍历每个sheet for (int numberSheet = 0; numberSheet < workBook.getNumberOfSheets(); numberSheet++) { //读取sheet HSSFSheet sheetAt = workBook.getSheetAt(numberSheet); //读取sheet是否存在和是否含有值 if(sheetAt != null && sheetAt.getLastRowNum() > 0) { //读取第一行,第一行为表头信息 HSSFRow hssfRow = sheetAt.getRow(0); short cellLength = hssfRow.getLastCellNum();//获取表格宽度,根据第一行来取 //读取每一行数据,从第二行开始读取 for(int numberCell=1;numberCell <= sheetAt.getLastRowNum();numberCell++) { List<String> cell = new ArrayList<String>(); HSSFRow row = sheetAt.getRow(numberCell);//每行数据 /** * 读取sheet表中的每行数据并判断类型 */ for(int cellNum=0;cellNum<cellLength;cellNum++) { if(row.getCell(cellNum).getCellType() == HSSFCell.CELL_TYPE_NUMERIC) { //数字为HSSFCell.CELL_TYPE_NUMERIC或者0 cell.add(format.format(row.getCell(cellNum).getNumericCellValue())); System.out.print(format.format(row.getCell(cellNum).getNumericCellValue())); } else { cell.add(row.getCell(cellNum).toString()); System.out.print(row.getCell(cellNum)); } } sheetList.add(cell); System.out.println(); } } } } else if(file.getName().endsWith(".xlsx")) { xssfWorkBook = new XSSFWorkbook(is); //workBoo //遍历每个sheet for (int numberSheet = 0; numberSheet < xssfWorkBook.getNumberOfSheets(); numberSheet++) { //读取sheet XSSFSheet sheetAt = xssfWorkBook.getSheetAt(numberSheet); //读取sheet是否存在和是否含有值 if(sheetAt != null && sheetAt.getLastRowNum() > 0) { //读取第一行,第一行为表头信息 XSSFRow hssfRow = sheetAt.getRow(0); short cellLength = hssfRow.getLastCellNum();//获取表格宽度,根据第一行来取 //读取每一行数据,从第二行开始读取 for(int numberCell=1;numberCell <= sheetAt.getLastRowNum();numberCell++) { List<String> cell = new ArrayList<String>(); XSSFRow row = sheetAt.getRow(numberCell);//每行数据 /** * 读取sheet表中的每行数据并判断类型 */ for(int cellNum=0;cellNum<cellLength;cellNum++) { if(row.getCell(cellNum).getCellType() == XSSFCell.CELL_TYPE_NUMERIC) { //数字为HSSFCell.CELL_TYPE_NUMERIC或者0 cell.add(format.format(row.getCell(cellNum).getNumericCellValue())); } else { cell.add(row.getCell(cellNum).toString()); } } sheetList.add(cell); } } } } } catch (FileNotFoundException e) { System.out.println(file.getName() + "文件读取异常" + e.getMessage()); } catch (IOException e) { System.out.println(file.getName() + "文件解析错误" + e.getMessage()); } /*System.out.println("-----------------"); for (List<String> list : sheetList) { for (String string : list) { System.out.print(string); } System.out.println(); }*/ return sheetList; } public static void main(String[] args) { File file = new File("E:/test.xlsx"); readExcel(file); } }
其中红色部分为转换代码,方法getCellType()为判断cell表格的数据类型的,如果是0或者HSSFCell.CELL_TYPE_NUMERIC为数字类型,使用上面的 DecimalFormat format = new DecimalFormat("#");//格式化excel数字类型 格式化就行了
相关推荐
CSV文档用EXCEL打开,长数字编码变成科学计数问题
防止GridView导出到excel中自动转成科学计数法
delphi处理excel科学计数法 //关于excel科学计数法 Uses comobj
科学计数法转换时间戳科学计数法转换时间戳科学计数法转换时间戳科学计数法转换时间戳科学计数法转换时间戳科学计数法转换时间戳科学计数法转换时间戳科学计数法转换时间戳科学计数法转换时间戳科学计数法转换时间戳...
将Long类型数据转换为科学计数法,使用的原生的写法,无需任何工具插件,编写环境支持JDK7/8及以上
本文件只需修改一个属性,直接替换官方文件,引入即可解决导出excel的数字变成科学计数法的问题。 有个项目需要用到jquery 的easyui和导出excel,发现官方下载的datagrid-export.js有几处bug,例如导出的excel格式,...
powerbuider 怎么把数字转换为科学计数 ,怎么把科学计数转换为数字
科学计数法向一般数字的转化,数组实现,以及浮点数实现法
1.字符串值中包含E等科学计数法,比如12E-2,需要进行转化为普通数值0.12, 2.转化函数如下: 代码如下: private Decimal ChangeDataToD(string strData) { Decimal dData = 0.0M; if (strData.Contains(“E...
当需要将科学计数法的数字字符串转换成decimal时,这2种写法都报错: msg 8114, level 16, state 5, line 1 error converting data type varchar to numeric. select cast('0.12e+006' as decimal(18,2)); select ...
将json转换为map之后,如果数值类型太多会在转换之后出现科学计数法的问题,经研究jackson源码、网上百度资料得知可以通过设置一些参数解决该问题
下面小编就为大家带来一篇java中将科学计数法转换普通计数法的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
输入一科学计数法形式字符串,如1234.5e-6 ;通过double atof()将其转换成double形的数据
向数据库中导入数据时,对科学技术法数据的处理。
导出数据到excel时数字变为科学计数的解决方法,有需要的朋友可以参考下
2.生成csv,中文无乱码,数据不会科学计数法; 3.支持大数据下载; 4.后台服务java语言实现,前端不限制; 5.前端代码: [removed]void(0)" class="layui-btn"> <i class="fa fa-refresh"> 导出Excel ...
科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法...
本文实例讲述了PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法。分享给大家供大家参考,具体如下: PHP计算大数值运算时会出错,当数字太大时,数值会变成科学计数.那怎么来进行PHP超大数值运算,包括加减...
防止Double加double后形成科学计数法问题