// 以下为我在项目中7a686964616fe59b9ee7ad94365运用的jxl的核心代码try {Workbook book = null;book = Workbook.getWorkbook(file);// 获得第一个工作表对象Sheet" />
乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > java <em>poi读取excel</em>含小数列时,与excel显示不...-poi读取

java <em>poi读取excel</em>含小数列时,与excel显示不...-poi读取

作者:乔山办公网日期:

返回目录:excel表格制作


<pre t="code" l="java">// 以下为我在项目中7a686964616fe59b9ee7ad94365运用的jxl的核心代码
try {
Workbook book = null;
book = Workbook.getWorkbook(file);
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
int rows = sheet.getRows();
if(rows>1){
Map idnomap = this.getStudentByIdnos(sheet);
for (int j = 1; j < sheet.getRows(); j++) {// 得到的是行的单元格
TStudentinfo stu = this.getStudent(sheet,sheet.getRow(j),rows,j,appmap,classmap,idnomap,state);
if(stu==null){
continue;
}
stulist.add(stu);
}
}
book.close();
// DEMO: db 操作在下方
xxxService.add(stulist);
}
catch (Exception e) {
System.out.println(e);
}

按字符串处理,就不会 。。。。。。。按double,才会,JAVA的特点
这是正常的。通过POI取出的数值默认都是double,即使excel单元格中存的是1,取出来的值也是1.0,这就造成了一些问题,如果数据库字段是int,那么就会wrongdatatype,所以需要对数值类型处理。代码如下:Cellcell=null;//单元格ObjectinputValue=null;//单元格值if(!isEmpty(cell)&&cell.getCellType()==Cell.CELL_TYPE_NUMERIC){longlongVal=Math.round(cell.getNumericCellValue());if(Double.parseDouble(longVal+".0")==doubleVal)inputValue=longVal;elseinputValue=doubleVal;}这么处理后,单元格中的小数没有变化,如果是整数,也会取到整数。

如果表头固定在第一行,可以扫描表头,获得你zd需要的数据的列号,例如下面的代码寻找姓名、性别、手机的列号:

var c_name,c_sex,c_mobile;
for (i=0;i<n;i++){
    if (cells(1,i)=="姓名") c_name=i;
    if (cells(1,i)=="性别") c_sex=i;
    if (cells(1,i)=="手机") c_mobile=i;
}

然后开始正确程序,使用这些列号获取你需要的列。

相关阅读

  • -jsp poi 读取excel,poi读取excel

  • 乔山办公网excel表格制作
  • POI 生成Excel 封装好的util可以直接百使用http://hi.baidu.com/a363359983/blog/item/a4901dffda3466265c6008f4.html这是度我空间的一片文问章,相信可以解决你的问题。附有答Demo,支持下载。内如果可以解
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网