日期:2014-05-17  浏览次数:20813 次

java中关于list的取值的一个特殊的问题
最近在用poi做excel的导出,结果导出时碰到一个问题,就是我建了一个POJO类(CourseGradeGather),类的一个成员变量是一个List(scoreList,就是整形的分数的一个list),在导出的excel表中,显示的成绩不是数值(95),而是显示的{@type=xs:int, $=95}
下面是相关的部分代码

//pojo类的部分代码
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement 
public class CourseGradeGather<E> {

private String id;
private String studyCenterName;
private String studentNum;
private String realName;
private String loginName;
private List<E> scoreList;


//导出时的部分代码
for(CourseGradeGather o : courseGradeGatherList) {

                        HSSFCellStyle cell_Style = (HSSFCellStyle) workbook.createCellStyle();//设置字体样式
                             cell_Style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont cell_Font = (HSSFFont) workbook.createFont();
cell_Font.setFontName("宋体");
cell_Font.setFontHeightInPoints((short)10);
cell_Style.setFont(cell_Font);
cell_Style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cell_Style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cell_Style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cell_Style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
HSSFRow rowContent = sheet.createRow(i); // 创建所需的行数
for (short j = 0; j < 5; j++) {
HSSFCell cellV = rowContent.createCell(j, HSSFCell.CELL_TYPE_STRING);// 设置单元格的数据类型
cellV.setCellValue(columnArray[j]); // 设置单元格的值
cellV.setCellStyle(cell_Style);
}
for (short jj = 0; jj < o.getScoreList().size(); jj++) {
HSSFCell cell = rowContent.createCell((short)(jj+5), HSSFCell.CELL_TYPE_STRING);// 设置单元格的数据类型
cell.setCellValue(o.getScoreList().get(jj).toString()); // 设置单元格的值
cell.setCellStyle(cell_Style);
}

}


导出的成绩部分结果为{@type=xs:int, $=95},怎么才能让导出的值为95呢?

------解决方案--------------------
o.getScoreList().get(jj).toString()你直接toString的,那就是你对象的toString方法。
((Integer)o.getScoreList().get(jj)).intValue();这样应该就可以了