java读写Excel过程中遇到的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

java读写Excel过程中遇到的问题

2016-05-27 14:44:14 2739 2

项目内用到java解析Excel的功能,我的问题有两个,向大家请教:
1、用jxl只能支持读取office2003及office以前的版本,不支持office2007之后的版本读取;
2、用poi虽然能同时支持office2003和office2007之后的版本,但是poi在读取Excel的过程中会出现精度缺失的问题,如:Excel单元格中的数据原本是12,但是POI的方法读取出来之后是11.99999999999。
由于Excel读取单元格的数据之后会对数值进行校验,当出现精度缺失时校验不通过。因此,向大家请教如何解决这类问题,谢谢!

取消 提交回答
全部回答(2)
  • xuri
    2021-12-10 17:19:01

    开源一个可以支持原生图表、图片,透视表,超大文档读写等高阶功能的基础库 Excelize: https://github.com/xuri/excelize

    1 0
  • 蛮大人123
    2019-07-17 19:17:52
         switch(cellType) {  
                            case Cell.CELL_TYPE_STRING: //文本  
                                cellValue = cell.getStringCellValue();  
                                break;  
                            case Cell.CELL_TYPE_NUMERIC: //数字、日期  
                                if(DateUtil.isCellDateFormatted(cell)) {  
                                   cellValue = fmt.format(cell.getDateCellValue()); //日期型  
                                }  
                                else {
                                   DecimalFormat df = new DecimalFormat("#");
                                   //System.out.println("type666=="+df.format(cell.getNumericCellValue()));
                                   //cellValue = String.valueOf(cell.getNumericCellValue()); //数字  
                                   cellValue =df.format(cell.getNumericCellValue());
                                }  
                                break;  
                            case Cell.CELL_TYPE_BOOLEAN: //布尔型  
                                cellValue = String.valueOf(cell.getBooleanCellValue());  
                                break;  
                            case Cell.CELL_TYPE_BLANK: //空白  
                                cellValue = cell.getStringCellValue();  
                                break;  
                            case Cell.CELL_TYPE_ERROR: //错误  
                                cellValue = "错误";  
                                break;  
                            case Cell.CELL_TYPE_FORMULA: //公式  
                                cellValue = "错误";  
                                break;  
                            default:  
                                cellValue = "错误";  
                        }
    0 0
添加回答
相关问答

1

回答

java怎么通过多线程怎么导出万级海量数据到excel

2018-05-10 20:07:53 7116浏览量 回答数 1

1

回答

JXL 在java中为什么导出的excel只有一行

2016-02-26 11:44:50 2230浏览量 回答数 1

0

回答

请问java 应用程序执行查询数据库表时对结果集进行排序操作时性能非常慢,该如何优化呢?

2021-11-12 17:17:55 304浏览量 回答数 0

1

回答

请问java应用程序执行关联表更新语句时性能较慢,该如何优化呢?

2021-11-07 14:21:14 659浏览量 回答数 1

1

回答

请问java 应用程序执行左外连接关联表lejt outer join查询时性能非常慢,该如何优化呢

2021-11-07 14:21:59 660浏览量 回答数 1

1

回答

请问在java应用程序中查询计算数据库表最小值min时性能非常低,该如何优化呢?

2021-11-07 14:21:59 673浏览量 回答数 1

1

回答

请问不同的访问修饰符对java应用程序的性能是否有影响呢?

2021-11-07 14:22:00 524浏览量 回答数 1

0

回答

请问java执行数据库查询操作,由于数据库表中的数据量非常大,导致java读取数据性能非常低,如何优

2021-11-12 17:17:44 403浏览量 回答数 0

0

回答

请问在java应用程序中执行数据库表模糊查询时性能非常低,该如何优化呢?

2021-11-12 17:17:42 261浏览量 回答数 0

1

回答

请问java应用程序对数据库表聚合count统计查询时性能非常慢,该如何优化呢?

2021-11-07 14:24:43 480浏览量 回答数 1
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
文章
问答
问答排行榜
最热
最新
相关电子书
更多
JAVA反射原理以及一些常见的应用
立即下载
阿里云MongoDB备份恢复功能说明和原理介绍
立即下载
快速变化背景下,组织如何保持过程的稳定性
立即下载